C# Azure应用程序服务中的IWebHostenEnvironment ContentRootPath与本地应用程序服务不同
我有一个ASP.NET核心3.0项目。我正在从本地数据文件夹(在项目根目录下)(wwwroot文件夹外)读取一些数据。运行本地时,我可以使用“iWebHostenEnvironment.ContentRootPath”获取此路径。但是,将项目上载到Azure应用程序服务时,ContentRootPath位于公用wwwroot文件夹中。当托管在Azure App Service中时,如何访问数据文件夹?根据我的测试,Azure Web App中的内容根路径是C# Azure应用程序服务中的IWebHostenEnvironment ContentRootPath与本地应用程序服务不同,c#,azure,asp.net-core,.net-core-3.0,C#,Azure,Asp.net Core,.net Core 3.0,我有一个ASP.NET核心3.0项目。我正在从本地数据文件夹(在项目根目录下)(wwwroot文件夹外)读取一些数据。运行本地时,我可以使用“iWebHostenEnvironment.ContentRootPath”获取此路径。但是,将项目上载到Azure应用程序服务时,ContentRootPath位于公用wwwroot文件夹中。当托管在Azure App Service中时,如何访问数据文件夹?根据我的测试,Azure Web App中的内容根路径是D:\home\site\wwwroot
D:\home\site\wwwroot
,而Azure Web App中的webroot路径是D:\home\site\wwwroot\wwwroot
。因此,您可能会误解项目中的wwwroot
文件夹与Azure Web App上用于存储Web内容的wwwroot
文件夹
MyHomeController
private readonly ILogger<HomeController> _logger;
private readonly IWebHostEnvironment _env;
public HomeController(ILogger<HomeController> logger, IWebHostEnvironment env)
{
_logger = logger;
_env = env;
}
public IActionResult Index()
{
string contentRootPath = _env.ContentRootPath;
string webRootPath = _env.WebRootPath;
return Content("Content Root Path: "+contentRootPath + "\nWeb Root Path: " + webRootPath);
}
专用只读ILogger\u记录器;
私人只读IWebHostEnvironment;
公共家庭控制器(ILogger记录器、IWebHostEnvironment环境)
{
_记录器=记录器;
_env=env;
}
公共IActionResult索引()
{
字符串contentRootPath=\u env.contentRootPath;
字符串webRootPath=\u env.webRootPath;
返回内容(“内容根路径:+contentRootPath+”\nWeb根路径:+webRootPath);
}
我的网站网址:
关于这一点,我们也可以通过
有关更多详细信息,请参阅此答案可能会有所帮助:我希望您也能展示Startup.cs