Asp.net core Blazor和appsettings.Testing.json

Asp.net core Blazor和appsettings.Testing.json,asp.net-core,blazor-server-side,aspnetcore-environment,Asp.net Core,Blazor Server Side,Aspnetcore Environment,我希望能够使用appsettings.json、appsettings.Testing.json为blazor应用程序检索适当的连接字符串。在测试服务器上,我将系统变量“ASPNETCORE_ENVIRONMENT”设置为“testing”,并且我有appsettings.testing.json和连接字符串。由于某些原因,在通过浏览器访问应用程序时,连接字符串是从appsettings.json而不是appsettings.Testing.json检索的 如果我在本地环境中更改/覆盖launc

我希望能够使用appsettings.json、appsettings.Testing.json为blazor应用程序检索适当的连接字符串。在测试服务器上,我将系统变量“ASPNETCORE_ENVIRONMENT”设置为“testing”,并且我有appsettings.testing.json和连接字符串。由于某些原因,在通过浏览器访问应用程序时,连接字符串是从appsettings.json而不是appsettings.Testing.json检索的

如果我在本地环境中更改/覆盖launchSettings.json中的环境变量,并从IIS express启动应用程序,它会选择正确的连接字符串。startup.cs中有什么我需要做的吗

这是我的Startup.cs

public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }
以下是我的appsettings.Testing.json:

{
  "_comment": "Environment settings for testing environment",
  "ConnectionStrings": {
    "DBConnectionString": "Server=TEST-SERVER102;Database=Customers;Trusted_Connection=True;"
  }
}

更新:如果使用以下代码记录当前环境:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            Debug.WriteLine("[Current Environment]" + env.EnvironmentName);
我看到下面的日志声明: [环境]生产


我在microsoft文档中读到,若未设置环境,则默认为生产环境。我确实通过系统变量将环境设置为“测试”。我缺少什么?

设置全局环境变量后是否重新启动控制台(除非在当前终端会话中设置)


确保您遵守了与操作系统相关的ASP.NET核心文档中的规则:。

设置全局环境变量后是否重新启动了控制台(除非在当前终端会话中设置)


确保您遵守了与您的操作系统相关的ASP.NET Core文档中所述的规则:。

事实证明,在我的测试服务器上,应用程序托管在自己的应用程序池中的IIS 10中,我必须通过appcmd.exe设置环境变量ASPNETCORE\u environment


appcmd.exe set config-section:system.applicationHost/applicationPools/+“[name='Contoso'].environmentVariables.[name='foo',value='bar']”/commit:apphost

结果是,在我的测试服务器上,应用程序托管在自己的应用程序池中的IIS 10中,我必须通过appcmd.exe设置环境变量ASPNETCORE_environment


appcmd.exe set config-section:system.applicationHost/applicationPools/+“[name='Contoso'].environmentVariables.[name='foo',value='bar']”/commit:apphost

我通过cmd提示符将其设置为管理员,通过以下命令:setx ASPNETCORE\u ENVIRONMENT“Development”/MI通过cmd提示符将其设置为管理员,通过以下命令:setx ASPNETCORE\u ENVIRONMENT“发展”/M