C# · 12月 27, 2021

c# – 在asp.net vnext中获取应用程序路径

我一直试图在asp.net 5中打开一个文件,并没有取得很大的成功.

过去,您使用Server.MapPath或HostingEnvironment.ApplicationPhysicalPath.他们都在基于OWIN的框架中.

有一个HostingEnvironment类,但它位于System.Aspnet中,但是它需要由主机环境进行初始化(它不再具有ApplicationPhysicalPath的静态成员,但是我猜这个WebRoot成员现在已经做到了,问题是我可以’在任何地方找到它的参考.

我也看过Context.GetFeature<>但它似乎没有显示应用程序路径的任何功能,只是请求和响应相关信息.列出功能的代码可以在here中找到.

< snark>是否能够在ASP.NET?brain,错过了一些东西.

解决方法 您可以从Microsoft.Framework.Runtime.IApplicationEnvironment服务的ApplicationBasePath属性获取它.

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