加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 06:57:04 所属栏目:百科 来源:网络整理
导读:我知道我可以通过HostingEnvironment(Microsoft.AspNet.Hosting命名空间)获取WebRoot. 我需要根据在我的Web应用程序中IIS中创建的虚拟路径获取物理路径.在IIS中,网站根目录指向我发布站点的wwwroot,并在IIS中添加了一个虚拟目录,它指向我的wwwroot之外的文件
我知道我可以通过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();
    }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读