使用ServerManager,可以获得安装的Web应用程序的虚拟目录列表。我还可以使用注册表项搜索来验证是否安装了特定的Web应用程序。但是,我无法找到通常在inetpub \ wwwroot中的Web应用程序物理路径。
相关注册表中的InstallLocation字段没有任何值。我该如何实现?
答案 0 :(得分:0)
您可以使用DirectoryEntry
浏览IIS配置。这是从another question中提取的示例:
void ListVirtualDirectories(string serverName, int siteId) {
DirectoryEntry iisServer = new DirectoryEntry("IIS://" + serverName + "/W3SVC/" + siteId + "/ROOT");
foreach (DirectoryEntry webDir in iisServer.Children) {
if (webDir.SchemaClassName.Equals("IIsWebVirtualDir"))
Console.WriteLine("Found virtual directory {0}", webDir.Name);
}
}
siteId
是一个与IIS中列出的每个站点相对应的数值。此方法强制您提供它,但是如果需要,您也可以在服务器上找到所有站点。只需在Google中搜索即可。但这应该可以帮助您入门。