【发布时间】:2019-05-13 22:50:17
【问题描述】:
使用 ServerManager,我可以获得已安装 Web 应用程序的虚拟目录列表。我还可以使用注册表项搜索来验证是否安装了特定的 Web 应用程序。但是,我无法找到通常位于 inetpub\wwwroot 中的 Web 应用程序物理路径。
相关注册表中的InstallLocation 字段没有任何值。我怎样才能做到这一点?
【问题讨论】:
标签: c# .net iis registry installation
使用 ServerManager,我可以获得已安装 Web 应用程序的虚拟目录列表。我还可以使用注册表项搜索来验证是否安装了特定的 Web 应用程序。但是,我无法找到通常位于 inetpub\wwwroot 中的 Web 应用程序物理路径。
相关注册表中的InstallLocation 字段没有任何值。我怎样才能做到这一点?
【问题讨论】:
标签: c# .net iis registry installation
您可以使用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 上搜索即可。但这应该可以帮助您入门。
【讨论】: