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>
这就是它检测为开发的原因!但仍然不确定为什么这个条目默认出现在已发布的输出中。
最近将应用程序从 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>
这就是它检测为开发的原因!但仍然不确定为什么这个条目默认出现在已发布的输出中。