部署计算机上的Asp.Net Core 2.1 Angular模板将环境检测为“开发”

时间:2018-08-13 06:36:04

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

最近将应用程序从2.0升级到2.1框架。在dev框(本地)中,一切正常。使用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")}");

这是登台服务器中的日志结果!

log entry

我们确实在读取实际值的同一服务器上运行其他ASP.Net代码Web API。那就是“分期”。

“ ASPNETCORE_ENVIRONMENT”环境变量设置: environment setting

我不知道为什么它必须表现得如此!如何使应用程序读取环境变量的实际值?它从何处读取“发展”的价值?

1 个答案:

答案 0 :(得分:0)

在发布期间,角度模板会使用以下条目生成一个web.config:

function showMenu() { var x = document.getElementById('mainmenu'); if (x.style.display == "none") { x.style.display = "block"; } else { x.style.display = "none"; } };

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