如何使用C#代码获取IIS虚拟目录和Web应用程序的物理path?

我正在用C#编写一个Web应用程序部署validation工具。 我需要检查Web Applicatons和Virtual Folders的物理文件夹结构。 这可以在C#中完成吗? 或者更一般地说,通过C#代码与IIS交互?

我发现这个链接,并会读回家。

谢谢。

Solutions Collecting From Web of "如何使用C#代码获取IIS虚拟目录和Web应用程序的物理path?"

我强烈建议使用Microsoft.Web.Administration DLL与超级管理员功能与IIS。

serverManager serverManager = new serverManager(); // get the site (eg default) Site site = serverManager.Sites.FirstOrDefault(s => s.Name == "Default Web Site"); // get the application that you are interested in Application myApp = site.Applications["/Dev1"]; // get the physical path of the virtual directory Console.WriteLine(myApp.VirtualDirectories[0].PhysicalPath); 

得到:

F:\开发\分行\ DEV1

你可以使用WMI来做这种事情:

使用WMI配置IIS 。

以编程方式管理IIS 。

您可以使用C#中的WMI(谷歌为“WMI C#”)。

所以,是的,这是可能的。

看看HttpRequest对象。 您可以使用HttpContext.Current.Request.Url获取当前的URL。

如果你想检查一个虚拟的IIS文件夹是否存在,你可以尝试对你期望存在的相对URL进行一次server.MapPath调用(你也可以在HttpContext对象中找到它),如果映射不成功,你可以假定您的相对路径指定的特定子文件夹不存在。

希望这可以帮助。