最近将应用程序从 2.0 升级到 2.1 框架。在开发箱(本地)中一切正常。使用SPA 模板
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
}
app.UseSpa(spa =>
{
spa.Options.SourcePath = "ClientApp";
if(env.IsDevelopment())
{
spa.UseAngularCliServer(npmScript: "start");
}
});
当代码发布到 Staging 和 Production 环境时,我们得到了 npm 异常。然后我添加了一个记录器来验证,它正在检测的环境是什么。
Log.Information($"EnvironmentName = {env.EnvironmentName}");
Log.Information($"ASPNETCORE_ENVIRONMENT = {Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")}");
这是登台服务器中的日志结果!
我们确实有其他 ASP.Net 代码 web api 在同一台服务器上运行,它读取实际值。那就是“分期”。
“ASPNETCORE_ENVIRONMENT”环境变量设置:
我不知道为什么它必须像这样!如何让应用读取环境变量的实际值?它从哪里读取价值为“发展”?
在发布期间,angular 模板会生成一个带有以下条目的 web.config:
<environmentVariables> <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" /> </environmentVariables>
这就是为什么它将其检测为开发!但仍然不确定为什么这个条目默认出现在已发布的输出中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句