当我将Dot Net Core Web应用程序部署到Azure时,Environment.ContentRootPath
变量设置为[myproject]/wwwroot
。但是,在开发过程中,它只是[myproject]
。
为什么在Azure部署中会发生变化?
如何使其保持一致?
供参考,这是我的IWebHost
。
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.ConfigureAppConfiguration((builderContext, config) =>
{
var env = builderContext.HostingEnvironment;
config.AddJsonFile("appsettings.json", false, true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", true, true);
if (env.IsDevelopment())
config.AddUserSecrets<Startup>();
config.AddEnvironmentVariables();
})
.UseSetting("detailedErrors", "true")
.UseApplicationInsights()
.UseStartup<Startup>()
.CaptureStartupErrors(true)
.Build();
答案 0 :(得分:0)
使用KUDU,您可以发现您的网络内容已部署到D:\home\site\wwwroot
,如下所示:
默认情况下,D:\home\site\wwwroot
将用作内容根,主机将在Azure Web App上托管您的应用程序时搜索内容文件(例如MVC视图文件等)。
在开发过程中,您的应用程序是从项目的根文件夹启动的,因此项目的根文件夹将用作内容根。
根据我的理解,您可能会误解项目中的wwwroot
文件夹,并使用Azure Web App上的wwwroot
文件夹来存储您的网络内容。
此外,您可以使用UseContentRoot
自定义内容根文件夹。如果路径不存在,则主机将无法启动。您可以关注的详细信息Hosting in ASP.NET Core。