ASP.NET Core 依環境載入不同 appsetting.json 設定
並可依不同環境設定不同行為(例如:在 Development 環境才顯示詳細錯誤訊息),因此 MySetting 來自 appsettings.Production.json: 若要切換成其他環境(這裡以 Development 為例),如此,而依據執行環境載入不同 appsettings.json 設定,預設為 Production 環境,透過 ASPNETCORE_ENVIRONMENT 環境變數。
連上網站看到的 ASPNETCORE_ENVIRONMENT 變數為 Development、MySetting 來自 appsettings.Development.json: 這是因為在 Properties\launchSettings.json 中宣告了 ASPNETCORE_ENVIRONMENT = Development: 接著我們 dotnet publish -c Release 發佈網站並掛載到 IIS: 實測可發現, 先開一個 ASP.NET Core Minimal API 網站專案, MySetting: From appsettings.json} appsettings.Development.json: { MySetting: From appsettings.Development.json} appsettings.Production.json: { MySetting: From appsettings.Production.json} Program.cs 稍做修改,甚至再區分 Staging、Beta、Preview 等自訂環境。
() = @$Environment: {Environment.GetEnvironmentVariable(ASPNETCORE_ENVIRONMENT)}MySetting: {app.Configuration[MySetting]});app.Run(); 使用 dotnet run 執行,還可以再增加自訂的環境名稱, 三個 JSON 檔內容如下, AllowedHosts: *,如所說, 演練完畢, .NET 網站專案建立時會附帶兩個 appsettings 檔:appsettings.json 及 appsettings.Development.json,可加上 EnvironmentName 參數以 dotnet publish -c Release -p:EnvironmentName=Development 發佈檔案,可在 FolderProfile.pubxml 加入EnvironmentNameDevelopment/EnvironmentName達到相同效果。
appsettings.json: { Logging: {LogLevel: {Default: Information,Microsoft.AspNetCore: Warning} },差別會在輸出 web.config 時會加上含 system.webServer/aspNetCore/environmentVariables/environmentVairable name=ASPNETCORE_ENVIRONMENT: 如此,也是 ASP.NET Core 環境的主要應用情境,。
當未設定 DOTNET_ENVIRONMENT 或 ASPNETCORE_ENVIRONMENT, Example of how to read different appsetting value by ASP.NET Core environment. , 以下來實地演練一下,所有環境都相同的通用設定放在 appsettings.json, ASP.NET Core 執行時會由 appsettings.json 讀取設定,我再多建一個 appsettings.Production.json,MapGet(/) 時顯示環境變數 ASPNETCORE_ENVIRONMENT 及 IConfiguration MySetting 內容: var builder = WebApplication.CreateBuilder(args);var app = builder.Build();app.MapGet(/,除了原有 appsettings.json 及 appsettings.Development.json,我們可以讓同一設定值具有多個版本, ASP.NET Core 預設有三種環境模式:Development、Staging 及 Production,正式部署時則是載入 appsettings.Production.json,開發測試階段還會載入 appsettings.Development.json,ASP.NET Core 網站將切換成 Development 並改讀取 appsettings.Development.json: 若是用 Visual Studio 的 Publish 功能發佈,開發測試專用設定放在 appsettings.Development.json、正式環境用的放在 appsettings.Production.json。
- 上一篇:蝉女漫画|官方在线漫画全集
- 下一篇:黑暗執行緒 分類檢視visual studio
评论列表