2011-02-07 27 views
3

我试图找到一些示例代码,显示如何使用WMI(使用C#)查询远程IIS 7的所有网站绑定。 我不能让所有的类/名称空间和查询需要做的头或尾做到这一点。 如果没有示例代码可用,我会喜欢一些关于良好文档的参考。WMI - IIS 7 - 检索所有网站绑定

非常感谢

回答

1

您需要使用ServerManager.OpenRemote("serverName")功能来连接到外部IIS实例。 (请参阅MSDN文章here

如果枚举通过serverManager.Sites集合,然后你可以检索每个Site对象site.Bindings属性一看就知道是网站上活动的绑定。

1

您应该能够通过访问IIS元数据库,使用的System.DirectoryServices装配做到这一点。

例如,在这里您可以列举这些网站中包含的所有网站和属性配置。

此引用添加到您的项目:

using System.DirectoryServices

// Assuming your Server Id is 1, and you are connecting to your local IIS. 
DirectoryEntry de = new DirectoryEntry(@"IIS://localhost/W3SVC/1/Root"); 
foreach (DirectoryEntry entry in de.Children) 
{ 
    foreach (PropertyValueCollection property in entry.Properties) 
    { 
     Console.WriteLine("Name: {0}, Value {1}",property.PropertyName, property.Value); 
    } 
} 
+2

需要注意的是,只有在服务器上安装了IIS6元数据库兼容性时,才能使用它。你也应该总是.Dispose()你的COM对象:) – 2011-02-07 16:20:09