您应该能够通过使用System.DirectoryServices程序集访问IIS元数据库来完成此操作。 例如,在这里,您可以枚举所有站点以及这些站点中包含的属性配置。 将此引用添加到您的项目: 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);
}
}
4条答案
按热度按时间nbysray51#
实现这一点的唯一方法(无需管理员)是使用Microsoft.Web.Administration。我只是写了一个关于如何做到这一点的快速博客,请参阅:
https://web.archive.org/web/20150722034236/http://blogs.msdn.com/b/carlosag/archive/2011/01/21/get-iis-bindings-at-runtime-without-being-an-administrator.aspx
基本上,由于IIS有一个我们称之为工作进程隔离的功能,因此可以从应用程序本身读取配置,而无需管理员。如果您使用ADSI,Metadata或任何其他方式,您将需要成为管理员。
i86rm4rw2#
您应该能够通过使用System.DirectoryServices程序集访问IIS元数据库来完成此操作。
例如,在这里,您可以枚举所有站点以及这些站点中包含的属性配置。
将此引用添加到您的项目:
using System.DirectoryServices
00jrzges3#
可以使用以下代码来获取绑定:
下面的代码可以用来测试上述方法:
使用的空间:
提交的组装件:Microsoft.Web.Administration
将上面的代码放在Sample.aspx中进行测试:
将给予如下输出:
wvmv3b1j4#
我想你是在找元数据访问:
http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/43a51d34-7c81-413b-9727-ec9a19d0b428.mspx?mfr=true