从桌面应用程序获取虚拟目录的物理路径

Get physical path of virtual directory from desktop application

我在 IIS 中创建了一个名为 VirtualDir 的虚拟目录。它指向 UNC 路径 \fileserver\folder1\folder2\

我有一个桌面应用程序(HttpContext.Current 不可用);我想从虚拟目录名称中检索 UNC 路径。

我知道如果我在网络上下文中,我可以调用 ServerApplication.MapPath("/VirtualDir/")。我已经在 Web 应用程序中进行了测试,这很有效,但对我没有帮助。

我试过 HostingEnvironment.MaptPath("/VirtualDir/") 但是 returns 无效。

如何从桌面应用程序检索 IIS 虚拟目录的物理位置,给定虚拟目录的名称(并假设它位于默认网站下)。

使用ServerManager (needs admin privileges) from Microsoft.Web.Administration。例如

var server = new ServerManager();
var path = server.Sites["Site Name"]
    .Applications["Application Name"]
    .VirtualDirectories["Directory"]
    .PhysicalPath;