asp.net 为什么appsettings.Development.json中的值会出现在生产环境中?

hts6caw3  于 12个月前  发布在  .NET
关注(0)|答案(2)|浏览(130)

根据Microsoft的这篇文章,“如果DOTNET_ENVIRONMENT和ASPNETCORE_ENVIRONMENT尚未设置,则生产是默认值。默认情况下,部署到Azure的应用程序是生产。”我在Azure应用服务的配置中没有设置这些值,然而,在我注入的IConfiguration代码中,我看到的值来自appsettings.Development.json而不是appsettings.json。环境等于“生产”,但结果是一样的。我做错了什么?

2ekbmq32

2ekbmq321#

“如果没有设置DOTNET_ENVIRONMENT和ASPNETCORE_ENVIRONMENT,则生产是默认值。
是的,将Web应用程序部署到Azure应用程序服务后的ASPNETCORE_ENVIRONMENT将是生产环境。

  • 您可以通过在.cshtml页面中检索ASPNETCORE_ENVIRONMENT值来进行检查。
@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文件没有上述设置,则该值将为null。


  • 如果您在Program.cs中设置json文件,如下所示,则仅加载该文件值。
builder.Configuration.AddJsonFile($"appsettings.Development.json", true, true);
builder.Configuration.AddEnvironmentVariables();


请确保您没有设置json文件如上所述。

wko9yo5t

wko9yo5t2#

我已经发现了这个问题。我还在很久以前(Azure之前)在web.config中设置了环境变量。删除这些旧值解决了这个问题。


的数据

相关问题