ASPNET 前置詞環境變數優先順序
從 .NET 7 開始 (且僅限使用 WebApplicationBuilder
主機時),當從預設主機組態來源進行讀取時,命令列引數和以 DOTNET_
為前置詞的環境變數會覆寫以 ASPNET_
為前置詞的環境變數。 當建構 WebApplicationBuilder
並將其作為應用程式組態的基底時,會使用這些來源來讀取主機變數,例如內容根路徑和環境名稱。
以 ASPNET_
為前置詞的環境變數現在於 WebApplicationBuilder
的所有預設主機組態來源中具有最低的優先順序。 對於 ConfigureWebHostDefaults
和 WebHost.CreateDefaultBuilder
等其他主機而言,以 ASPNET_
為前置詞的環境變數仍然有最高優先順序。
導入的版本
ASP.NET Core 7.0
先前的行為
在讀取 WebApplicationBuilder
的預設主機組態時,以 ASPNET_
為前置詞的環境變數覆寫了命令列引數和以 DOTNET_
為前置詞的環境變數。
新的行為
在讀取 WebApplicationBuilder
的預設主機組態時,命令列引數和以 DOTNET_
為前置詞的環境變數會覆寫以 ASPNET_
為前置詞的環境變數。
中斷性變更的類型
這是行為變更。
變更原因
進行這項變更的原因,是防止環境變數在讀取主機變數時覆寫明確的命令列引數。 新的行為與應用程式組態更一致,一律會提供最高優先順序的命令列引數。
建議的動作
如果您是使用以 ASPNETCORE_
為前置詞的環境變數來覆寫命令列引數或以 DOTNET_
為前置詞的環境變數,請使用具有更高優先順序的項目。 這可能表示使用自訂 WebApplicationOptions,這會覆寫所有預設裝載組態來源。