Asp.Net Core 2.1 Angular 部署机器上的模板检测到环境为 "Development"

Asp.Net Core 2.1 Angular Template on Deployment machine detects environment as "Development"

最近将应用程序从 2.0 升级到 2.1 框架。在开发箱(本地)中,一切正常。使用 SPA template

        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseExceptionHandler("/Error");
        }

        app.UseSpa(spa =>
        {

            spa.Options.SourcePath = "ClientApp";

            if(env.IsDevelopment())
            {
                spa.UseAngularCliServer(npmScript: "start");
            }
        });

当代码发布到暂存和生产环境时,我们遇到了 npm 异常。然后我添加了一个记录器来验证它正在检测的环境是什么。

Log.Information($"EnvironmentName = {env.EnvironmentName}");
Log.Information($"ASPNETCORE_ENVIRONMENT = {Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")}");

这是临时服务器中的日志结果!

我们在读取实际值的同一服务器中确实有其他 ASP.Net 代码网络 api 运行。即 "Staging"。

"ASPNETCORE_ENVIRONMENT"环境变量设置:

我不知道为什么它必须表现得像这样!如何让应用程序读取环境变量的实际值?从哪里读取值 "Development"?

在发布期间,angular 模板生成一个 web.config,其中包含以下条目:

<environmentVariables> <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" /> </environmentVariables>

这就是它检测为开发的原因!但仍然不确定为什么这个条目默认出现在已发布的输出中。