获取asp.net vnext中的应用程序路径



我一直在尝试在asp.net 5中打开一个文件,但没有取得太多成功。

在过去,您使用Server.MapPathHostingEnvironment.ApplicationPhysicalPath。它们都在基于OWIN的框架中消失了。

有一个HostingEnvironment类,但它在System.Aspnet中,但它需要由托管环境初始化(它不再有ApplicationPhysicalPath的静态成员,但我猜WebRoot成员现在已经这样做了。问题是我在任何地方都找不到它的引用。

我还研究了Context.GetFeature<>,但它似乎没有任何显示应用程序路径的功能,只有与请求和响应相关的信息。列出功能的代码可以在这里找到。

<snark>在ASP.NET中,处理文件的功能是否已停止?</snark>

还有一种可能性是,我现在脑子不太好,错过了什么。

您可以从Microsoft.Framework.Runtime.IApplicationEnvironment serivce的ApplicationBasePath属性中获取它。

示例:https://github.com/aspnet/Mvc/blob/9f1cb655f6bb1fa0ce1c1e3782c43a2d45ca4e37/test/WebSites/FilesWebSite/Controllers/DownloadFilesController.cs#L28

现在有两种方法:

using Microsoft.Extensions.PlatformAbstractions;
public Startup(IApplicationEnvironment appEnv)
{
    // approach 1
    var path01 = PlatformServices.Default.Application.ApplicationBasePath;
    // approach 2
    var path02 = appEnv.ApplicationBasePath;
}

最新更新