【问题标题】:ASP.Net vNext App_Data folderASP.Net vNext App_Data 文件夹
【发布时间】:2015-02-08 13:12:44
【问题描述】:

与此处找到的问题类似:ASP.NET MVC - Find Absolute Path to the App_Data folder from Controller

App_Data 文件夹消失了吗? Server.MapPath 好像也不见了。

我尝试使用Url.Content 获得相同的结果,但它似乎不起作用。

【问题讨论】:

    标签: c# asp.net asp.net-mvc asp.net-core


    【解决方案1】:

    我们确实在 vNext 中有 App_Data

    这应该仍然有效

    string path = AppDomain.CurrentDomain.GetData("DataDirectory").ToString();
    

    至于 Server.MapPath 等效项,您可以使用 AppDomain.CurrentDomain.BaseDirectory 并从那里构建您的路径。

    您也可以使用IApplicationEnvironment 服务

    private readonly IApplicationEnvironment _appEnvironment;
    
    public HomeController(IApplicationEnvironment appEnvironment)
    {
        _appEnvironment = appEnvironment;
    }
    
    public IActionResult Index()
    {
        var rootPath = _appEnvironment.ApplicationBasePath;
        return View();
    }
    

    IHostingEnvironment 在道德上等同于 Web 应用程序IApplicationEnvironment。对于 PhysicalFileSystemIHostingEnvironment 回退到 IApplicationEnvironment

    private readonly IHostingEnvironment _hostingEnvironment;
    
    public HomeController(IHostingEnvironment hostingEnvironment)
    {
        _hostingEnvironment = hostingEnvironment;
    }
    
    public IActionResult Index()
    {
       var rootPath = _hostingEnvironment.MapPath("APP_DATA");
       return View();
    }
    

    【讨论】:

    • 从 vs2015 预览版开始的 config.json 存储在项目文件夹中,我不确定我们是否可以调用该 App_Data 文件夹。我刚刚发现我们也可以在 Startup 类中使用 IHostingEnvironment.WebRoot 。这将是官方的最佳做法还是仍然是解决方法?
    • 看起来他们已经改变了它的位置。 IHostingEnvironment 是 IApplicationEnvironment 的道德等价物,但适用于 Web 应用程序。对于 PhysicalFileSystem,IHostingEnvironment 回退到 IApplicationEnvironment。
    • 字符串路径 = AppDomain.CurrentDomain.GetData("DataDirectory").ToString();不适用于 CoreCLR
    【解决方案2】:

    MapPath 存在于 IHostingEnvironment 中

    private readonly IHostingEnvironment _env;
    public HomeController(IHostingEnvironment env)
    {
        _env = env;
    }
    
    public IActionResult Index()
    {
       var dataFolderPath = _env.MapPath("APP_DATA");
       return View();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-05
      • 1970-01-01
      • 2015-09-06
      • 2020-02-21
      • 1970-01-01
      相关资源
      最近更新 更多