C# · 12月 29, 2021

c# – 如何将虚拟路径映射到物理路径?

我知道我可以通过HostingEnvironment(Microsoft.AspNet.Hosting命名空间)获取WebRoot.

我需要根据在我的Web应用程序中IIS中创建的虚拟路径获取物理路径.在IIS中,网站根目录指向我发布站点的wwwroot,并在IIS中添加了一个虚拟目录,它指向我的wwwroot之外的文件夹.我希望我可以获得该虚拟目录的物理路径.在MVC 5或更早版本中,我可以使用HostingEnvironment.MapPath(System.Web命名空间)或Server.MapPath,我应该在MVC 6中做什么?@H_502_3@

编辑:@H_502_3@

它不是虚拟路径,而是在IIS中添加虚拟目录.我希望我可以获得该虚拟目录的物理路径.我认为虚拟目录是IIS的一个特殊功能,它看起来像一个完整虚拟路径的子路径,但可以是物理Web根文件夹之外的文件夹.@H_502_3@

2015年10月4日@H_502_3@

参考this issue in ASP.NET 5 Hosting repo,到目前为止,似乎我们不能在IIS中获得虚拟目录的物理路径.@H_502_3@解决方法 您可以使用IApplicationEnvironment,其中包含属性ApplicationBasePath private readonly IApplicationEnvironment _appEnvironment; public HomeController(IApplicationEnvironment appEnvironment) { _appEnvironment = appEnvironment; } public IActionResult Index() { var rootPath = _appEnvironment.ApplicationBasePath; return View(); }