理解ASP.NET Core 配置系統(tǒng)
目錄
- ASP.NET Core 默認(rèn)配置提供者
- 配置環(huán)境
- 用戶(hù)機(jī)密信息
ASP.NET Core 默認(rèn)配置提供者
- 加載現(xiàn)有的
IConfiguration
- 加載項(xiàng)目根目錄下的
appsettings.json
- 加載項(xiàng)目根目錄下的
appsettings.{Environment}.json
- 當(dāng)程序運(yùn)行在開(kāi)發(fā)環(huán)境下,程序會(huì)加載 “用戶(hù)機(jī)密” 配置
- 加載環(huán)境變量中的配置
- 加載命令行中的配置
配置環(huán)境
- 開(kāi)發(fā)環(huán)境、測(cè)試環(huán)境、生產(chǎn)環(huán)境需要進(jìn)行不同配置
運(yùn)行環(huán)境:ASP.NET Core 會(huì)從環(huán)境變量中讀取名字為
ASPNETCORE_ENVIRONMENT
的值
推薦值:
Development —— 開(kāi)發(fā)環(huán)境
Staging —— 測(cè)試環(huán)境
Production —— 生產(chǎn)環(huán)境
- 讀取方式:
app.Environment.EnvironmentName
、app.Environment.IsDevelopment()
等
讀取系統(tǒng)環(huán)境變量:
Environment.GetEnvironmentVariable("EnvironmentName");
讀取系統(tǒng)環(huán)境變量,需要重啟 Visual Studio 重啟項(xiàng)目是不行的,因?yàn)榄h(huán)境變量的讀取需要通過(guò)父進(jìn)程傳遞給子進(jìn)程,重啟 VS 是重啟進(jìn)程的操作。
Visual Studio 快速配置開(kāi)發(fā)環(huán)境的環(huán)境變量
在 Controller 中讀取環(huán)境變量
在 Controller 中讀取環(huán)境變量需要注入
IWebHostEnvironment
public class TestController : ControllerBase{ private readonly IWebHostEnvironment _env; [HttpGet] public string Test() { return _env.EnvironmentName; }}
用戶(hù)機(jī)密信息
- 如何創(chuàng)建用戶(hù)機(jī)密:項(xiàng)目右鍵菜單 ? 管理用戶(hù)機(jī)密
- 創(chuàng)建之后,會(huì)在 csproject 文件中添加
UserSecretsID
的節(jié)點(diǎn) - 用戶(hù)機(jī)密文件是存儲(chǔ)在,C盤(pán)
AppData/Roaming/Microsoft/SuerSecrets
文件夾
用戶(hù)機(jī)密的劣勢(shì):
共開(kāi)發(fā)人員使用,不適合生產(chǎn)環(huán)境中使用文本信息為明文,非加密重裝操作系統(tǒng)、新員工等導(dǎo)致 secrets.json 重建,就需要重新配置,比較麻煩
到此這篇關(guān)于理解ASP.NET Core 配置系統(tǒng) 的文章就介紹到這了,更多相關(guān)ASP.NET Core 配置系統(tǒng) 內(nèi)容請(qǐng)搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!
