如何配置 ASP.NET Core 應用程式?
在應用程式開發期間,甚至在應用程式構建完成後,您通常需要更改各種控制應用程式行為的設定。配置是指控制應用程式行為的外部值,包括應用程式在執行時使用的設定和引數。
關於儲存配置值的最佳實踐是將其儲存在應用程式外部,而不是將其硬編碼在原始碼中。您不希望每次更改配置時都重新編譯並重新啟動應用程式。還存在安全隱患。您不希望將資料庫連線字串或密碼以純文字形式儲存在原始碼中。
ASP.NET Core 使管理應用程式的配置變得非常容易。您可以透過各種來源配置設定,例如 JSON 檔案、環境變數和命令列引數。框架負責載入這些設定,並透過統一的配置物件提供它們。它支援多種檔案格式,例如 JSON、XML、YAML 等。您還可以建立自己的自定義配置提供程式。框架還允許您覆蓋設定。
以下是 ASP.NET Core 支援的各種配置提供程式
例如 appsettings.json 的設定檔案
環境變數
Azure Key Vault
Azure 應用配置
命令列引數
已安裝或建立的自定義提供程式
目錄檔案
記憶體中的 .NET 物件
Program 類中的 CreateDefaultBuilder() 方法提供了預設配置。
public class Program{
public static void Main(string[] args){
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder => {
webBuilder.UseStartup<Startup>();
});
}此方法按以下順序載入配置
ChainedConfigurationProvider
appsettings.json
appsettings.Environment.json
應用程式機密
環境變數
命令列引數
如果您稍後添加了更多配置提供程式,它們將覆蓋先前的設定。
環境變數
EnvironmentVariablesConfigurationProvider 從環境變數載入配置值作為鍵值對。這是在讀取 appsettings.json、appsettings.Environment.json 和使用者機密之後完成的。因此,來自環境變數的設定會覆蓋來自 appsettings.json 檔案和使用者機密的設定。
在 Windows 上,您可以使用 set 或 setx 命令設定環境變數。
set CONN_STR="Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;"
命令列變數
透過命令列設定的配置設定會覆蓋所有其他配置提供程式。它使用 CommandLineConfigurationProvider 從命令列引數載入配置作為鍵值對。例如
dotnet run CONN_STR="Server=myServerAddress; Database=myDataBase; User Id=myUsername; Password=myPassword;"
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP