如何在新版ASP.NET MVC的Program.cs中设置ASPNETCORE_ENVIRONMENT
在新版ASP.NET MVC的Program.cs中设置ASPNETCORE_ENVIRONMENT环境变量
你只需要把那行设置环境变量的代码放在创建WebApplicationBuilder的代码之前就行,因为新版ASP.NET的启动逻辑是按Program.cs里的语句顺序执行的,WebApplication.CreateBuilder初始化时会读取ASPNETCORE_ENVIRONMENT的值,提前设置才能让应用生效。
示例代码如下:
// 先设置进程级环境变量,确保应用启动前读取到 System.Environment.SetEnvironmentVariable("ASPNETCORE_ENVIRONMENT", "Development"); // 之后再创建Web应用构建器 var builder = WebApplication.CreateBuilder(args); // 下面是原有的服务配置和管道代码 builder.Services.AddControllersWithViews(); var app = builder.Build(); if (!app.Environment.IsDevelopment()) { app.UseExceptionHandler("/Home/Error"); app.UseHsts(); } app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseRouting(); app.UseAuthorization(); app.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); app.Run();
另外给你个更贴合新版ASP.NET写法的替代方案:不需要调用SetEnvironmentVariable,直接在创建WebApplicationBuilder时指定环境名称,效果完全一致:
var builder = WebApplication.CreateBuilder(new WebApplicationOptions { EnvironmentName = Microsoft.Extensions.Hosting.Environments.Development }); // 后续的服务和管道配置代码不变...
内容的提问来源于stack exchange,提问作者Elias
相关产品推荐
相关产品推荐

