アプリ プール/サイトをリモートで停止/再起動し、アプリ プール/サイトのステータスもチェックするアプリケーションがあります。現在、これらは DirectoryEntry クラスを使用して管理されています。
private DirectoryEntry FindSite(int nPort)
{
using (var sites = new DirectoryEntry(string.Format(m_adSitesPath,m_RemoteServerName)))
{
sites.RefreshCache();
foreach (DirectoryEntry de in sites.Children)
{
de.RefreshCache();
if (de.SchemaClassName == "IIsWebServer")
{
string port = GetNullableDirMultiValuePart(de, "ServerBindings", 0, 1);
if (nPort == int.Parse(port))
{
return de;
}
}
}
}
return null;
}
このメソッドは、IIS 8 を実行しているすべてのサーバーで失敗します。別の質問では、Microsoft.Web.Administrator クラスの使用を検討する必要があると提案されました。Microsoft.Web.Administrator 名前空間を使用してポートごとにサイトのリストを取得できるように、誰かが私を正しい方向に向けてくれませんか?