gpt4 book ai didi

c# - 如何在本地 IIS 服务器上获取网站的物理路径? (来自桌面应用程序)

转载 作者:IT王子 更新时间:2023-10-29 04:41:19 29 4
gpt4 key购买 nike

如何获取通常看起来像 %SystemDrive%\inetpub\wwwroot 的路径?

我想这与 Microsoft.Web.Administration.ServerManager 类有关,但我找不到办法。

更新:我正在尝试从独立应用程序获取路径。不是 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(或 IIS7 的 IIS6 管理兼容层)

// 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);
}

这两个示例都演示了如何发现到网站根目录的路径。

要发现虚拟目录的路径,您需要根据需要修改路径。

关于c# - 如何在本地 IIS 服务器上获取网站的物理路径? (来自桌面应用程序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3228813/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com