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

浙公网安备 33010602011771号