使用ASP.NET Core 2.1,我尝试在我的开发机器上本地加载相同的静态文件(通过 Visual Studio 2017),并在网站发布到托管环境(Azure Web Apps)之后。
考虑file.xml要提供的静态文件 ( ) 驻留在 Web 根目录中的目录层次结构:
wwwroot
css
images
js
xml
file.xml
这是我加载文件的控制器:
public class DevelopmentController : Controller
{
private readonly IHostingEnvironment _env;
public DevelopmentController(IHostingEnvironment env)
{
_env = env;
}
public async Task<string> Test()
{
string result = "";
// Test Code Here
XmlDocument doc = new XmlDocument();
doc.Load(Path.Combine(_env.WebRootPath, "xml", "file.xml"));
return result;
}
}
这会在我的开发机器上本地加载文件,但是,一旦将 Web 应用程序发布到 Azure,我就会收到以下错误:
DirectoryNotFoundException: 找不到路径“D:\home\site\wwwroot\wwwroot\xml\file.xml”的一部分
无论我尝试什么,在文件发布到 Azure 后,我似乎都无法加载它。
注意:在 中ASP.NET MVC 5,我曾经能够使用该Server.MapPath()函数加载一个静态文件,该文件在本地和 Azure 中都可以使用。例如:
doc.Load(System.Web.HttpContext.Current.Server.MapPath("~/xml/file.xml"));
但是自从升级到ASP.NET Core 2.1.
这些是 Microsoft Docs,我用作参考:https : //docs.microsoft.com/en-us/aspnet/core/fundamentals/static-files?view=aspnetcore-2.1&tabs=aspnetcore2x
炎炎设计
慕慕森
梵蒂冈之花
相关分类