當(dāng)前位置:首頁 >  站長 >  編程技術(shù) >  正文

ASP.NET Core根據(jù)環(huán)境變量支持多個 appsettings.json配置文件

 2020-10-29 16:27  來源: 腳本之家   我來投稿 撤稿糾錯

  域名預(yù)訂/競價,好“米”不錯過

這篇文章主要介紹了ASP.NET Core根據(jù)環(huán)境變量支持多個 appsettings.json配置文件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

一、背景

在項目開發(fā)的過程當(dāng)中,開發(fā)環(huán)境與生產(chǎn)環(huán)境的配置肯定是不一樣的。拿個最簡單的例子來說,比如連接字符串這種東西,開發(fā)環(huán)境肯定不能連生產(chǎn)數(shù)據(jù)庫。在之前的話,這種情況基本靠準(zhǔn)備兩個同名的配置文件來進(jìn)行處理,然后你在本地就使用本地的配置文件,生產(chǎn)環(huán)境就使用生產(chǎn)環(huán)境的配置文件,十分麻煩。

ASP.NET Core支持利用環(huán)境變量來動態(tài)配置 JSON 文件,下面就來看一下如何在項目中使用這樣功能吧。

二、準(zhǔn)備工作

ASP.NET Core在應(yīng)用啟動時讀取環(huán)境變量ASPNETCORE_ENVIRONMENT,ASPNETCORE_ENVIRONMENT可以設(shè)置任意值,但框架僅支持三個值:Development、Staging 和 Production,因此我們先在項目中添加appsettings.Development.json、appsettings.Production.json和appsettings.Staging.json以備用。

項目默認(rèn)生成的appsettings.json用來存放公共配置,當(dāng)我們設(shè)置Development環(huán)境時,最終的配置項是appsettings.Development.json和appsettings.json求并集的結(jié)果,若兩文件有同名配置項則以appsettings.Development.json為準(zhǔn),其他環(huán)境同理。各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

三、開發(fā)時設(shè)置環(huán)境變量

ASPNETCORE_ENVIRONMENT設(shè)置為Development,那在VS中調(diào)試的時候就會讀取appsettings.Development.json的數(shù)據(jù)

ASPNETCORE_ENVIRONMENT設(shè)置為Production,那在VS中調(diào)試的時候就會讀取appsettings.Production.json的數(shù)據(jù)

四、發(fā)布后設(shè)置環(huán)境變量

無論 ASPNETCORE_ENVIRONMENT設(shè)置為Development、Staging、Production,只要項目中有appsettings.Production.json,那項目發(fā)布后運行時默認(rèn)會讀取Production的配置。

無論 ASPNETCORE_ENVIRONMENT設(shè)置為Development、Staging、Production,只要項目中沒有appsettings.Production.json那項目發(fā)布后運行時就會僅讀取appsettings.json的配置。

若想在發(fā)布后動態(tài)設(shè)置環(huán)境變量,可以通過修改web.config的方式來實現(xiàn),Core項目中默認(rèn)是沒有web.config文件的,但是發(fā)布后會生成一個web.config文件,我們可以通過添加節(jié)點來設(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)境變量支持多個 appsettings.json配置文件的文章就介紹到這了,更多相關(guān)ASP.NET Core appsettings.json 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

來源:腳本之家

鏈接:https://www.jb51.net/article/193667.htm

申請創(chuàng)業(yè)報道,分享創(chuàng)業(yè)好點子。點擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!

相關(guān)標(biāo)簽
asp.net

相關(guān)文章

熱門排行

信息推薦