C# Azure应用程序服务中的IWebHostenEnvironment ContentRootPath与本地应用程序服务不同

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

我有一个ASP.NET核心3.0项目。我正在从本地数据文件夹(在项目根目录下)(wwwroot文件夹外)读取一些数据。运行本地时,我可以使用“iWebHostenEnvironment.ContentRootPath”获取此路径。但是,将项目上载到Azure应用程序服务时,ContentRootPath位于公用wwwroot文件夹中。当托管在Azure App Service中时,如何访问数据文件夹?

根据我的测试,Azure Web App中的内容根路径是
D:\home\site\wwwroot
,而Azure Web App中的webroot路径是
D:\home\site\wwwroot\wwwroot
。因此,您可能会误解项目中的
wwwroot
文件夹与Azure Web App上用于存储Web内容的
wwwroot
文件夹

My
HomeController

 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