ASP.NET Core 基于环境变量读取不同环境配置

在开发中切换不同的环境配置

在开发中切换不同的环境配置有两种方法:

1、在项目中找到launchSettings.json文件,然后修改ASPNETCORE_ENVIRONMENT的值为你想要切换的环境

 

2、右键项目-->属性--调试,找到ASPNETCORE_ENVIRONMENT,修改为你想要切换的环境

 

在生产中切换不同的环境配置

Windows系统

1、系统级别设置

右键计算机----属性----高级系统设置----环境变量---新建环境变量,变量名填入ASPNETCORE_ENVIRONMENT,变量值填写配置文件对应的值。

 

2、IIS应用程序池设置

若要为在独立应用池中运行的应用设置 ASPNETCORE_ENVIRONMENT 环境变量(IIS 10.0 或更高版本支持此操作),请参阅环境变量 <environmentVariables> 主题中的“AppCmd.exe 命令”部分 。 为应用池设置 ASPNETCORE_ENVIRONMENT 环境变量后,它的值会替代系统级设置。(来着官网文档)

 

3、站点级别设置

Asp.net Core站点发布后会生成一个web.config的文件,默认生成结构如下:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath=".\IS4.exe" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
</system.webServer>
</location>
</configuration>

 我们需要添加如下红色部分的内容:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath=".\IS4.exe" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" >
<environmentVariables>
<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
</environmentVariables> 
</aspNetCore>
</system.webServer>
</location>
</configuration>

 

Linux和macOS系统可以参考官方文档:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/environments?view=aspnetcore-2.1#development

 

 

posted @ 2018-09-10 15:16  fengchao1000  阅读(1177)  评论(0)    收藏  举报