根据 Microsoft 的这篇文章,“如果未设置 DOTNET_ENVIRONMENT 和 ASPNETCORE_ENVIRONMENT,则默认值为 Production。部署到 Azure 的应用程序默认为 Production。”我没有在 Azure 应用服务的配置中设置这些值,但在代码中注入的 IConfiguration 中,我看到的是来自 appsettings.Development.json
而不是
appsettings.json
的值。我还尝试显式将 ASPNETCORE_ENVIRONMENT 设置为“Production”,但结果是相同的。我做错了什么?
“如果未设置 DOTNET_ENVIRONMENT 和 ASPNETCORE_ENVIRONMENT,则 Production 为默认值。是的,将 Web 应用程序部署到 Azure 应用服务后的
ASPNETCORE_ENVIRONMENT
将成为生产环境。
ASPNETCORE_ENVIRONMENT
页面中的
.cshtml
值来检查。
@inject Microsoft.AspNetCore.Hosting.IWebHostEnvironment Environment
<h3>ASPNETCORE ENVIRONMENT: @Environment.EnvironmentName</h3>
环境输出:
appsettings.Development.json
文件中设置了示例应用程序设置值。
"TestVal": "Value from appsettings.Development.json"
.cshtml
页面中的值。
@inject IConfiguration myconfig;
<h3>TestVal: @myconfig["TestVal"]</h3>
本地输出:
部署的应用程序输出:
由于我在appsettings.json
中设置了相同的值,因此加载了
appsettings.json
文件中的值。
appsettings.json
文件没有上述设置,则该值为空。
json
中设置
Program.cs
文件,如下所示,则只会加载该文件值。
builder.Configuration.AddJsonFile($"appsettings.Development.json", true, true);
builder.Configuration.AddEnvironmentVariables();
确保您没有如上所述设置json
文件。