《ASP.N‎ET Core 高性能系列》环境(Envir‎on‎mentName)的设置

来源:m-dot.com   作者:   发表时间:2020-02-13 00:06:04

  程序启动时Host捕获到环境相关数据,然后交由IEnvironment(传说要作废,但是觉得这个设计依旧前后矛盾,因为没有考虑好非Web 和Web区分),然后交由IWebHostEnvironment,对于ASP.NET Core环境而言,同样会存储在

IWebHostEnvironment.EnvironmentName,ASP.NET Core框架自身提供Development、Staging、Production三种状态作为EnvironmentName的值,

  建议为不同的环境定义不同的Startup类,让ASP.NET Core根据自身环境的不同,加载不同的Startup{EnvironmentName}文件,例如

开发环境会加载StartupDevelopment.cs文件,线上环境加载StartupProduction.cs文件

  Program.cs中对于Startup的加载代码需要采用程序集的方式进行加载.

1.开发阶段,我们可以通过项目的 PropertieslaunchSettings.json 进行设置

使用 dotnet run 启动应用时:如果可用,读取 launchSettings.json 。 launchSettings.json 中的 environmentVariables 设置会替代环境变量 。此时显示承载环境。

在没有 launchSettings.json 文件的 Development 环境中启动应用时,可以使用环境变量设置环境或者将命令行来启动

1) Windows下当前窗口下有效的方式

b.当前powershell下有效

2)Windows全局设置的方式

a.控制面板 >系统 >高级系统设置进行设置环境变量

Machine 选项值指明,在系统一级设置环境变量。 如果将选项值更改为 User,就会为用户帐户设置环境变量。

3)类Unix系的设置方式

  如果要全局生效,请加到相应配置文件中,如下Centos的配置方式

  发布后的程序默认是Production模式的,如果设置了环境变量,就以环境变量为准;我们还可以通过以下方式在代码中强制指定运行环境是什么.

除此之外,.NET Core还可以在IIS ,IIS程序池,Azure中对EnvironmentName进行设置

  简而言之,可以让我们的程序在不同的EnvironmentName下运行不一样的代码。通常不同的环境,我们需要加载不一样的配置,

这是都可以通过EnvironmentName来灵活指定.另外有一些额外知识,如第二段提到那样,ASP.NET Core根据自身环境的不同,加载不同的Startup{EnvironmentName}文件,例如开

发环境会加载StartupDevelopment.cs文件,线上环境加载StartupProduction.cs文件,

编辑:

未经授权许可,不得转载或镜像
© Copyright © 1997-2019 by m-dot.com all rights reserved