ASP.Netで次のようなコードを使用して、IISのWebサイトを列挙します。
string metabasePath = "IIS://localhost/W3SVC";
DirectoryEntry service = new DirectoryEntry(metabasePath);
service.RefreshCache();
string className = service.SchemaClassName.ToString();
if (className.EndsWith("Service"))
{
DirectoryEntries sites = service.Children;
foreach (DirectoryEntry site in sites)
{
ProcessSite(site);
}
}
ただし、16サイトのうち最初の11サイトのみが処理されていることがわかりました。私はこれと数時間戦いましたが、IISの最初の11サイトを通過する方法を見つけることができません。再帰的に検索してみましたが、DirectorySearcherを使用しても無駄になりました。複数回列挙したり、なんらかのフィルターを使用したりしましたが、うまくいきませんでした。
何か案は?
ありがとう!
〜mellamokb