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

前端之家收集整理的这篇文章主要介绍了c# – 如何将虚拟路径映射到物理路径?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道我可以通过HostingEnvironment(Microsoft.AspNet.Hosting命名空间)获取WebRoot.

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

编辑:

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

2015年10月4日

参考this issue in ASP.NET 5 Hosting repo,到目前为止,似乎我们不能在IIS中获得虚拟目录的物理路径.

解决方法

您可以使用IApplicationEnvironment,其中包含属性ApplicationBasePath
private readonly IApplicationEnvironment _appEnvironment;

    public HomeController(IApplicationEnvironment appEnvironment)
    {
        _appEnvironment = appEnvironment;
    }

    public IActionResult Index()
    {
        var rootPath = _appEnvironment.ApplicationBasePath;
        return View();
    }

猜你在找的C#相关文章