在ASP .Net Core中获取运行环境,我们可以使用依赖注入IWebHostEnvironment ,下面是一个Web框架下的启动类。当然你也可以在任何地方使用它,如果你的类不是注入方式获取的,那么可以在启动后保存它的值,任何地方可以直接获取。
public class Startup
{
public Startup(IConfiguration configuration, IWebHostEnvironment env)
{
Configuration = configuration;
Environment = env;
}
public IConfiguration Configuration { get; }
private IWebHostEnvironment Environment { get; }
}
其中 Environment.EnvironmentName 就是我们想要值 (Development/Staging/Production)之一。
还有一个方法使用广泛,这里记录一下:
if (Environment.IsDevelopment())
lebang2020.cn
环境名的配置与使用要点
除 Development、Staging、Production 三个约定名称外,也可以使用自定义名称,环境名本质只是一个字符串标签。
- 配置来源:机器环境变量 ASPNETCORE_ENVIRONMENT 优先,开发机由 launchSettings.json 指定;
- 判断 API 推荐用 env.IsDevelopment()、IsProduction(),不要直接比对字符串;
- 配置分层:appsettings.json 之后会按序加载 appsettings.{环境名}.json,同名键覆盖,适合放各环境的连接串;
- 建议把"仅生产开启"的中间件(如压缩、HTTPS 跳转、错误页)都包在环境判断里;
- 发布到服务器前用 dotnet 命令行确认变量已设置,避免生产以 Development 裸奔。
相关阅读
- C#判断当前的网络是否可用(ping)
- ASP .Net Core 拦截恶意访问 中间件
- ASP .Net Core appsettings.json获取配置值正确而简单的方法
- C# - 如何使用HTTPClient提交数据 POST JSON数据