ASPNET 前置詞環境變數優先順序

從 .NET 7 開始 (且僅限使用 WebApplicationBuilder 主機時),當從預設主機組態來源進行讀取時,命令列引數和以 DOTNET_ 為前置詞的環境變數會覆寫以 ASPNET_ 為前置詞的環境變數。 當建構 WebApplicationBuilder 並將其作為應用程式組態的基底時,會使用這些來源來讀取主機變數,例如內容根路徑和環境名稱。

ASPNET_ 為前置詞的環境變數現在於 WebApplicationBuilder 的所有預設主機組態來源中具有最低的優先順序。 對於 ConfigureWebHostDefaultsWebHost.CreateDefaultBuilder 等其他主機而言,以 ASPNET_ 為前置詞的環境變數仍然有最高優先順序。

導入的版本

ASP.NET Core 7.0

先前的行為

在讀取 WebApplicationBuilder預設主機組態時,以 ASPNET_ 為前置詞的環境變數覆寫了命令列引數和以 DOTNET_ 為前置詞的環境變數。

新的行為

在讀取 WebApplicationBuilder預設主機組態時,命令列引數和以 DOTNET_ 為前置詞的環境變數會覆寫以 ASPNET_ 為前置詞的環境變數。

中斷性變更的類型

這是行為變更

變更原因

進行這項變更的原因,是防止環境變數在讀取主機變數時覆寫明確的命令列引數。 新的行為與應用程式組態更一致,一律會提供最高優先順序的命令列引數。

如果您是使用以 ASPNETCORE_ 為前置詞的環境變數來覆寫命令列引數或以 DOTNET_ 為前置詞的環境變數,請使用具有更高優先順序的項目。 這可能表示使用自訂 WebApplicationOptions,這會覆寫所有預設裝載組態來源。

受影響的 API

另請參閱