0
我有一個腳本收集IIS中的所有站點,並通過電子郵件發送一些審計細節。我想對其進行調整,以便僅通過電子郵件發送正在運行的網站。我不需要知道停止的網站。我已經參考了IIS中的所有DirectoryEntry
,但我沒有看到任何可以指示它是否正在運行的屬性。以編程方式確定IIS站點是否正在運行
這是如何完成的?理想情況下,這應該在IIS6和IIS7上運行。
我有一個腳本收集IIS中的所有站點,並通過電子郵件發送一些審計細節。我想對其進行調整,以便僅通過電子郵件發送正在運行的網站。我不需要知道停止的網站。我已經參考了IIS中的所有DirectoryEntry
,但我沒有看到任何可以指示它是否正在運行的屬性。以編程方式確定IIS站點是否正在運行
這是如何完成的?理想情況下,這應該在IIS6和IIS7上運行。
DirectoryEntry.Properties
集合,包含一個ServerState
屬性。它沒有很好的記錄,但我發現this blogger創建了自己的枚舉,看起來是正確的。枚舉是
public enum ServerState
{
Unknown = 0,
Starting = 1,
Started = 2,
Stopping = 3,
Stopped = 4,
Pausing = 5,
Paused = 6,
Continuing = 7
}
利用這一點,邏輯來檢查DirectoryEntry
運行,你可以使用:
DirectoryEntry entry;
ServerState state = (ServerState)Enum.Parse(typeof(ServerState), entry.Properties["ServerState"].Value.ToString())
if (state == ServerState.Stopped || state == ServerState.Paused)
{
//site is stopped
}
{
拉梅方式:使用'WebClient'請求主頁,看看你得到任何形式的迴應。 :/ – 2012-02-17 18:25:55
DL:我根本不認爲這是跛腳。 – JohnC 2012-02-17 18:28:02