ASP.NET Core根据环境变量支持多个 appsettings.json配置文件
更新时间:2020年08月19日 11:58:06 作者:changuncle
这篇文章主要介绍了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”
}
官方说明地址:docs.microsoft.com/zh-cn/aspnet/core/fundamentals/environments?view=aspnetcore-2.1
三、开发时设置环境变量
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文件,我们可以通过添加<environmentVariable >节点来设置环境变量:
<?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配置文件的文章就介绍到这了,更多相关ASP.NET Core appsettings.json 内容请搜索华域联盟以前的文章或继续浏览下面的相关文章希望大家以后多多支持华域联盟!
您可能感兴趣的文章:.Net Core读取Json配置文件的实现示例.NET Core简单读取json配置文件ASP.NET core Web中使用appsettings.json配置文件的方法.NetCore获取Json和Xml格式的配置信息详解ASP.NET Core 在 JSON 文件中配置依赖注入.net core中编辑json配置文件的方法
ASP.NET
Core
appsettings.json
相关文章
利用ASP.NET MVC和Bootstrap快速搭建个人博客之后台dataTable数据jQuery dataTables 插件是一个优秀的表格插件,应用非常广泛,本文给大家介绍利用ASP.NET MVC和Bootstrap快速搭建个人博客之后台dataTable数据列表,非常不错,具有参考借鉴价值,感兴趣的朋友一起看下吧 2016-07-07
WPF中button按钮同时点击多次触发click解决方法这篇文章主要为大家详细介绍了WPF中button按钮同时点击多次触发click的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 2017-04-04
基于C# 网站地图制作为啥要做网站地图呢?网站地图在提高网站排名的活动中起着举足轻重的作用,一般作网站的银都知道。^_^除了网站地图本身的重要性以外,还有以下几个原因 2009-03-03
Repeater控件与PagedDataSource结合实现分页功能Repeater控件与PagedDataSource相结合实现其分页功能,如果控件开发人员需对自定义数据绑定控件提供分页支持,即可使用此类 2014-01-01
透过ashx看浏览器服务器运行本质(图解)一般处理程序(HttpHandler):是一个实现System.Web.IHttpHandler接口的特殊类。任何一个实现了IHttpHandler接口的类是作为一个外部请求的目标程序的前提,感兴趣的朋友可以了解下或许有所帮助 2013-01-01
c# 连接字符串数据库服务器端口号 .net状态服务器端口号正常的数据库连接字符串配置,这是在MSSQL服务器端口是1433(默认)的情况下。
2009-06-06
asp.net实现递归方法取出菜单并显示在DropDownList中(分栏形式)这篇文章主要介绍了asp.net实现递归方法取出菜单并显示在DropDownList中的方法,涉及asp.net递归算法与DropDownList使用技巧,需要的朋友可以参考下 2016-06-06
asp.net(C#)跨域及跨域写Cookie问题在网站www.A.com下通过iframe或ajax调用www.B.com下的内容时,默认情况下IE会阻止www.B.com写任何Cookie 2011-10-10
ASP.NET(AJAX+JSON)实现对象调用最近开始学习ASP.NET AJAX 搞了两天学了点皮毛,贴点代码 日后方便自己查看.
2010-01-01
ASP.NET MVC5网站开发项目框架(二)这篇文章主要介绍了ASP.NET MVC5网站开发项目框架,需要的朋友可以参考下 2015-09-09
最新评论

评论(0)