ASP.NET Core 环境变量

通常,在专业应用程序开发中,在将应用程序发布给真实用户之前,会有多个阶段对其进行测试。按照惯例,这些阶段是开发、分期和生产。作为开发人员,我们可能希望根据应用程序所处的阶段来控制应用程序的行为。环境变量指示应用程序当前运行的运行时环境。

ASP.NET Core 使用名为 ASPNETCORE_ENVIRONMENT 的环境变量来指示运行时环境。此变量的值可以根据您的需要任意设置,但通常可以是 Development(开发)、Staging(模拟) 或 Production(产品)。该值在 Windows 和 Mac OS 中不区分大小写,但在 Linux 上区分大小写。

在 Visual Studio 中,我们可以在项目属性的调试选项卡中设置 ASPNETCORE_ENVIRONMENT。通过右键单击解决方案资源管理器中的项目并选择属性,打开项目属性。

这将打开属性页。单击调试选项卡,您将看到环境变量,如下所示。

您可以根据需要更改值。此值将保存在 launchSettings.json 文件中,如下所示。

您也可以直接在 launchSettings.json 中更改环境变量。


运行时访问环境变量

我们可以在代码中获取环境变量的值,以根据其值执行一些附加代码。IHostingEnvironment 服务包含 EnvironmentName 属性,该属性包含 ASPNETCORE_ENVIRONMENT 变量的值。ASP.NET Core 还包括用于检查环境的扩展方法,如 IsDevelopment()IsStating()IsEnvironment()IsProduction()

IHostingEnvironment 服务由 ASP.NET 提供托管层,可以通过依赖注入在应用程序中的任何位置使用。以下示例显示了如何在 Startup 类的 Configure 方法中检查环境变量。

  1. public void Configure(IApplicationBuilder app, IHostingEnvironment env)
  2. {
  3. if (env.IsEnvironment("Development"))
  4. {
  5. // 要在开发环境中执行的代码
  6. }
  7. if (env.IsDevelopment())
  8. {
  9. // 要在开发环境中执行的代码
  10. }
  11. if (env.IsStaging())
  12. {
  13. // 要在模拟环境中执行的代码
  14. }
  15. if (env.IsProduction())
  16. {
  17. // 要在生产环境中执行的代码
  18. }
  19. }

了解 ASP.NET Core 应用程序以及如何在那里使用此环境变量,将在下一章中介绍。