あなたはSchemaClassName
IIsWebServer
のを持っているメタベースパスIIS://Localhost/W3SVC
の子どもたちに属するServerComment
プロパティを調べることで、サイトを検索することができます。
次のコードは、2つのアプローチを示しています
string siteToFind = "Default Web Site";
// The Linq way
using (DirectoryEntry w3svc1 = new DirectoryEntry("IIS://Localhost/W3SVC"))
{
IEnumerable<DirectoryEntry> children =
w3svc1.Children.Cast<DirectoryEntry>();
var sites =
(from de in children
where
de.SchemaClassName == "IIsWebServer" &&
de.Properties["ServerComment"].Value.ToString() == siteToFind
select de).ToList();
if(sites.Count() > 0)
{
// Found matches...assuming ServerComment is unique:
Console.WriteLine(sites[0].Name);
}
}
// The old way
using (DirectoryEntry w3svc2 = new DirectoryEntry("IIS://Localhost/W3SVC"))
{
foreach (DirectoryEntry de in w3svc2.Children)
{
if (de.SchemaClassName == "IIsWebServer" &&
de.Properties["ServerComment"].Value.ToString() == siteToFind)
{
// Found match
Console.WriteLine(de.Name);
}
}
}
これはServerComment
プロパティを使用(IISのMMC力はその使用)と一意であるされていることを前提としています。私のシステムで
出典
2009-03-19 16:44:43
Kev
が、私はそれをコンパイルするために取得するために、次で上記を更新しなければならなかった「結果= Convert.ToInt32(site.Name);」 – MattH