.NET Core根据环境变量支持多个 appsettings.json配置文件

.NET Core根据环境变量支持多个 appsettings.json配置文件

在项目开发的过程当中,开发环境、测试环境、生产环境的配置肯定是不一样的,单靠一个 appsettings.json,没法满足各种环境。所以就需要根据不同的环境,加载不同的配置文件。

环境变量

ASP.NET Core在应用启动时读取环境变量ASPNETCORE_ENVIRONMENT,ASPNETCORE_ENVIRONMENT可以设置任意值,但框架仅支持三个值:Development(开发),、Staging(分阶段), 和 Production(生产),分别对应项目中的appsettings.Development.json、appsettings.Production.json和appsettings.Staging.json。

我们新建项目时,只有appsettings.Development.json,另外两个则需要我们添加。

在这里插入图片描述
系统默认读取配置文件的顺序是:

开发环境
appsettings.Development.json -> appsettings.json

生产环境
appsettings.Production.json -> appsettings.json

没有Development和Production的时候默认读取 appsettings.json

开发调试时指定环境

开发调试时,默认指定Development环境,我们也可以自己指定

在这里插入图片描述
Docker 发布时指定环境

Docker 发布时默认指定生产环境,我们也可以自行指定

默认发布命令:

docker run -d -p 5001:80 --name myservice1 192.168.8.25:5000/myapi  --ip=192.168.8.61 --port=5001

带环境变量发布命令:

docker run -d -p 5002:80 --name myservice2 -e ASPNETCORE_ENVIRONMENT=Staging  192.168.8.25:5000/myapi  --ip=192.168.8.61 --port=5002

注: Docker run -e xxx=abc,-e 可以指定环境变量

我这里试了下,appsettings.Production.json 是连接到服务器consul,appsettings.Staging.json 连接到本地consul,测试成功。

查看myservice1 环境变量

docker inspect myservice1

在这里插入图片描述

查看myservice2 环境变量

docker inspect myservice2

在这里插入图片描述

web.config指定环境

若是在win环境发布,可以通过修改web.config的方式来实现,Core项目中默认是没有web.config文件的,但是发布后会生成一个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="dotnet" arguments=".\WebCoreTest.Web.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout">
    <environmentVariables>
     <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
    </environmentVariables>
   </aspNetCore>
  </system.webServer>
 </location>
</configuration>
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值