如何配置 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;"

更新於: 2021年6月22日

341 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.