如何在本地IIS服务器上获取网站的物理路径?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (506)

如何获得像这样的路径%SystemDrive%\inetpub\wwwroot

我想从独立应用程序获得路径。不是ASP。NET网络应用程序。

提问于
用户回答回答于

可以执行以下操作:

// If IIS7
// Add reference to Microsoft.Web.Administration in 
// C:\windows\system32\inetsrv

using Microsoft.Web.Administration;
...

int iisNumber = 2;

using(ServerManager serverManager = new ServerManager())
{
  var site = serverManager.Sites.Where(s => s.Id == iisNumber).Single();
  var applicationRoot = 
           site.Applications.Where(a => a.Path == "/").Single();
  var virtualRoot = 
           applicationRoot.VirtualDirectories.Where(v => v.Path == "/").Single();
  Console.WriteLine(virtualRoot.PhysicalPath);
}

如果你正在使用IIS 6

// If IIS6
// Add reference to System.DirectoryServices on .NET add ref tab

using System.DirectoryServices;
...

int iisNumber = 2;

string metabasePath = String.Format("IIS://Localhost/W3SVC/{0}/root", iisNumber);
using(DirectoryEntry de = new DirectoryEntry(metabasePath))
{
  Console.WriteLine(de.Properties["Path"].Value);
}

扫码关注云+社区

领取腾讯云代金券