欢迎来到GM源码之家!会员签到可免费领金币,开通会员下载免金币(本站金币1:10)
广告位出租
广告位招租
ASP.NET Core根据环境变量支持多个appsettings.json配置文件
时间:2020-10-30 来源:脚本之家 作者:秩名 浏览: 次  推荐  打印
广告位出租

这篇文章主要介绍了ASP.NET Core根据环境变量支持多个 appsettings.json配置文件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧


一、背景


在项目开发的过程当中,开发环境与生产环境的配置肯定是不一样的。拿个最简单的例子来说,比如连接字符串这种东西,开发环境肯定不能连生产数据库。在之前的话,这种情况基本靠准备两个同名的配置文件来进行处理,然后你在本地就使用本地的配置文件,生产环境就使用生产环境的配置文件,十分麻烦。


ASP.NET Core支持利用环境变量来动态配置 JSON 文件,下面就来看一下如何在项目中使用这样功能吧。


二、准备工作


ASP.NET Core在应用启动时读取环境变量ASPNETCORE_ENVIRONMENT,ASPNETCORE_ENVIRONMENT可以设置任意值,但框架仅支持三个值:Development、Staging 和 Production,因此我们先在项目中添加appsettings.Development.json、appsettings.Production.json和appsettings.Staging.json以备用。


项目默认生成的appsettings.json用来存放公共配置,当我们设置Development环境时,最终的配置项是appsettings.Development.json和appsettings.json求并集的结果,若两文件有同名配置项则以appsettings.Development.json为准,其他环境同理。各json文件的配置项如下:


/*appsettings.json*/

{

"UserType": "default",

"OnlyDefault": "onlyDefault"

}


/*appsettings.Development.json*/

{

{

"UserType": "development",

"OnlyDevelopment": "onlyDevelopment"

}


/*appsettings.Production.json*/

{

"UserType": "production",

"OnlyProduction": "onlyProduction"

}


/*appsettings.Staging.json*/

{

"UserType": "staging",

"OnlyStaging": "onlyStaging"

}


官方说明地址:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/environments?view=aspnetcore-2.1


三、开发时设置环境变量

1603959963489.jpg

ASPNETCORE_ENVIRONMENT设置为Development,那在VS中调试的时候就会读取appsettings.Development.json的数据


ASPNETCORE_ENVIRONMENT设置为Production,那在VS中调试的时候就会读取appsettings.Production.json的数据


四、发布后设置环境变量


无论 ASPNETCORE_ENVIRONMENT设置为Development、Staging、Production,只要项目中有appsettings.Production.json,那项目发布后运行时默认会读取Production的配置。


无论 ASPNETCORE_ENVIRONMENT设置为Development、Staging、Production,只要项目中没有appsettings.Production.json那项目发布后运行时就会仅读取appsettings.json的配置。


若想在发布后动态设置环境变量,可以通过修改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>

<!--ProjectGuid: 59584515-22df-4551-bfd5-a70baa85af16-->


到此这篇关于ASP.NET Core根据环境变量支持多个 appsettings.json配置文件的文章就介绍到这了!


本文来源:脚本之家


(责任编辑:GM源码之家)

转载请注明来源:https://www.gmyuanma.com/jsjc/4245.html

会员头像
说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!

郑重声明:
本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
我们不承担任何技术及版权问题,且不对任何资源负法律责任。
如无法下载,联系站长索要。
如有侵犯您的版权,请及时【联系我们】我们尽快处理。