Csharp/C#教程:如何在本地IIS服务器上获取网站的物理路径? (来自桌面应用)分享


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

如何获得通常看起来像%SystemDrive%inetpubwwwroot的路径?

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

更新:我正试图从独立应用程序获取路径。 不是ASP.NET Web应用程序。

要从独立应用程序中发现网站的物理路径,您可以执行以下操作:

 // If IIS7 // Add reference to Microsoft.Web.Administration in // C:windowssystem32inetsrv 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); } 

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

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

使用Server.Mappath

要么

请求对象路径可用

RequestObject属性

PhysicalApplicationPath – 返回此应用程序的虚拟根目录的本地文件系统路径。 C:的Inetpub wwwroot的网络存储器

PhysicalPath – 返回当前脚本或路径的本地文件系统路径。 C:的Inetpub wwwroot的网络存储器 ADMIN paths.aspx

更新

要从Windows应用程序访问iis,请阅读本文: 在C#中修改IIS元数据库 (适用于IIs 6.0,5.0)

Server.MapPath不在共享托管环境中工作,在这种情况下,您可以使用HostingEnvironment.MapPath 。

上述就是C#学习教程:如何在本地IIS服务器上获取网站的物理路径? (来自桌面应用)分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1012741.html

(0)
上一篇 2021年12月30日
下一篇 2021年12月30日

精彩推荐