您好,登錄后才能下訂單哦!
這篇文章主要介紹了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
三、開發時設置環境變量
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 是開源,跨平臺,高性能,輕量級的 Web 應用構建框架,常用于通過 HTML、CSS、JavaScript 以及服務器腳本來構建網頁和網站。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“ASP.NET Core如何根據環境變量支持多個 appsettings.json配置文件”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。