【问题标题】:Asp.Net Core 2.1 Angular Template on Deployment machine detects environment as "Development"部署机器上的 Asp.Net Core 2.1 Angular 模板将环境检测为“开发”
【发布时间】:2018-08-21 17:29:01
【问题描述】:

最近将应用程序从 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 代码 web api,它读取实际值。那就是“分期”。

“ASPNETCORE_ENVIRONMENT”环境变量设置:

我不知道为什么它必须这样!如何让应用程序读取环境变量的实际值?从哪里读取“发展”的价值?

【问题讨论】:

  • 能否提供完整的启动代码?
  • 默认情况下,ASPNETCORE_ENVIRONMENTProduction,看来你在某处更改为Development。检查launchSettings.jsonweb.config。我建议你尝试Setting environment variablesASPNETCORE_ENVIRONMENT 设置为Staging
  • 我发现了问题。谢谢周涛,

标签: asp.net-web-api asp.net-core asp.net-core-webapi angular-template


【解决方案1】:

在发布期间,Angular 模板会生成一个带有以下条目的 web.config:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-08
    • 2019-01-08
    • 2017-02-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-15
    • 2018-09-16
    • 1970-01-01
    相关资源
    最近更新 更多