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

本文关键字:路径 虚拟 桌面 应用程序 获取 | 更新日期: 2023-09-27 18:13:30

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

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

我知道,如果我是在一个web上下文中,我可以调用ServerApplication.MapPath("/VirtualDir/")。我已经在一个web应用程序中进行了测试,这是有效的,但它没有帮助我。

我试过HostingEnvironment.MaptPath("/VirtualDir/"),但返回null。

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

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

使用Microsoft.Web.Administration的ServerManager(需要管理员权限)。例如

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