ASP.NET Core根據(jù)環(huán)境變量支持多個(gè) appsettings.json配置文件
一、背景
在項(xiàng)目開(kāi)發(fā)的過(guò)程當(dāng)中,開(kāi)發(fā)環(huán)境與生產(chǎn)環(huán)境的配置肯定是不一樣的。拿個(gè)最簡(jiǎn)單的例子來(lái)說(shuō),比如連接字符串這種東西,開(kāi)發(fā)環(huán)境肯定不能連生產(chǎn)數(shù)據(jù)庫(kù)。在之前的話,這種情況基本靠準(zhǔn)備兩個(gè)同名的配置文件來(lái)進(jìn)行處理,然后你在本地就使用本地的配置文件,生產(chǎn)環(huán)境就使用生產(chǎn)環(huán)境的配置文件,十分麻煩。
ASP.NET Core支持利用環(huán)境變量來(lái)動(dòng)態(tài)配置 JSON 文件,下面就來(lái)看一下如何在項(xiàng)目中使用這樣功能吧。
二、準(zhǔn)備工作
ASP.NET Core在應(yīng)用啟動(dòng)時(shí)讀取環(huán)境變量ASPNETCORE_ENVIRONMENT,ASPNETCORE_ENVIRONMENT可以設(shè)置任意值,但框架僅支持三個(gè)值:Development、Staging 和 Production,因此我們先在項(xiàng)目中添加appsettings.Development.json、appsettings.Production.json和appsettings.Staging.json以備用。
項(xiàng)目默認(rèn)生成的appsettings.json用來(lái)存放公共配置,當(dāng)我們?cè)O(shè)置Development環(huán)境時(shí),最終的配置項(xiàng)是appsettings.Development.json和appsettings.json求并集的結(jié)果,若兩文件有同名配置項(xiàng)則以appsettings.Development.json為準(zhǔn),其他環(huán)境同理。各json文件的配置項(xiàng)如下:
/*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"
}
官方說(shuō)明地址:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/environments?view=aspnetcore-2.1
三、開(kāi)發(fā)時(shí)設(shè)置環(huán)境變量

ASPNETCORE_ENVIRONMENT設(shè)置為Development,那在VS中調(diào)試的時(shí)候就會(huì)讀取appsettings.Development.json的數(shù)據(jù)
ASPNETCORE_ENVIRONMENT設(shè)置為Production,那在VS中調(diào)試的時(shí)候就會(huì)讀取appsettings.Production.json的數(shù)據(jù)
四、發(fā)布后設(shè)置環(huán)境變量
無(wú)論 ASPNETCORE_ENVIRONMENT設(shè)置為Development、Staging、Production,只要項(xiàng)目中有appsettings.Production.json,那項(xiàng)目發(fā)布后運(yùn)行時(shí)默認(rèn)會(huì)讀取Production的配置。
無(wú)論 ASPNETCORE_ENVIRONMENT設(shè)置為Development、Staging、Production,只要項(xiàng)目中沒(méi)有appsettings.Production.json那項(xiàng)目發(fā)布后運(yùn)行時(shí)就會(huì)僅讀取appsettings.json的配置。
若想在發(fā)布后動(dòng)態(tài)設(shè)置環(huán)境變量,可以通過(guò)修改web.config的方式來(lái)實(shí)現(xiàn),Core項(xiàng)目中默認(rèn)是沒(méi)有web.config文件的,但是發(fā)布后會(huì)生成一個(gè)web.config文件,我們可以通過(guò)添加<environmentVariable >節(jié)點(diǎn)來(lái)設(shè)置環(huán)境變量:
<?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-->
到此這篇關(guān)于ASP.NET Core根據(jù)環(huán)境變量支持多個(gè) appsettings.json配置文件的文章就介紹到這了,更多相關(guān)ASP.NET Core appsettings.json 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- ASP.NET Core配置文件的獲取和設(shè)置
- ASP.NET?CORE讀取json格式配置文件
- ASP.NET Core讀取配置文件
- ASP.NET Core應(yīng)用程序配置文件AppSetting.json
- ASP.NET Core中修改配置文件后自動(dòng)加載新配置的方法詳解
- Asp.net Core與類庫(kù)讀取配置文件信息的方法
- 如何在ASP.NET Core類庫(kù)項(xiàng)目中讀取配置文件詳解
- ASP.NET core Web中使用appsettings.json配置文件的方法
- 詳解ASP.NET Core 在 JSON 文件中配置依賴注入
- 如何使用ASP.NET?Core?配置文件
相關(guān)文章
ASP.NET Core MVC獲取請(qǐng)求的參數(shù)方法示例
這篇文章主要給大家介紹了關(guān)于ASP.NET Core MVC是如何獲取請(qǐng)求的參數(shù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用ASP.NET Core MVC具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
ASP.NET MVC驗(yàn)證碼功能實(shí)現(xiàn)代碼
ASP.NET MVC驗(yàn)證碼功能實(shí)現(xiàn)代碼,需要的朋友可以參考一下2013-06-06
JavaScript用JQuery呼叫Server端方法實(shí)現(xiàn)代碼與參考語(yǔ)法
從Javascript客戶端用JQuery呼叫Server端的方法,這也是一個(gè)大膽的嘗試,本人做了演示動(dòng)畫以及參考語(yǔ)法,感興趣的朋友可以參考下,希望本人對(duì)你有所幫助2013-01-01
Asp.net把圖片存入數(shù)據(jù)庫(kù)和讀取圖片的方法
網(wǎng)上關(guān)于ASP.NET上傳圖片到數(shù)據(jù)庫(kù)的資料非常多,常用的如下:存儲(chǔ)圖片類型數(shù)據(jù)有以下幾種方式2013-07-07
DataGridView中綁定DataTable數(shù)據(jù)及相關(guān)操作實(shí)現(xiàn)代碼
DataGridView中綁定DataTable數(shù)據(jù)及相關(guān)操作2010-02-02
用Html5與Asp.net MVC上傳多個(gè)文件的實(shí)現(xiàn)代碼
Html 5 的有一些File API,對(duì)Form表單增強(qiáng)的特性,讓我們輕松支持多文件上傳,看下面的Html片斷代碼2012-08-08
Consul的搭建和.Net5的注冊(cè)和獲取方法(Win10簡(jiǎn)單版)
Consul?是一個(gè)用來(lái)實(shí)現(xiàn)分布式系統(tǒng)服務(wù)發(fā)現(xiàn)與配置的開(kāi)源工具。接下來(lái)通過(guò)本文給大家介紹win10下Consul的搭建和.Net5的注冊(cè)和獲取方法,感興趣的朋友一起看看吧2022-01-01
asp.net 網(wǎng)頁(yè)編碼自動(dòng)識(shí)別代碼
另外一位網(wǎng)友空間/IV提供的代碼,功能同HttpWebRequest獲取網(wǎng)頁(yè)源代碼時(shí)自動(dòng)識(shí)別網(wǎng)頁(yè)編碼2008-09-09

