Kestrel:預設 HTTPS 繫結已移除
預設的 HTTPS 位址和連接埠已從 .NET 7 的 Kestrel 中移除。 這項變更是 dotnet/aspnetcore#42016 的一部分,其將改善開發人員在處理 HTTPS 時的整體體驗。
導入的版本
ASP.NET Core 7.0
先前的行為
過去,如果未明確為位址和連接埠指定值,但有可用的開發憑證,則 Kestrel 預設會同時繫結 http://localhost:5000
和 https://localhost:5001
。
新的行為
使用者現在必須手動繫結至 HTTPS,並透過下列其中一種方法明確指定位址和連接埠:
- launchSettings.json 檔案
ASPNETCORE_URLS
環境變數--urls
命令列引數urls
主機組態索引鍵- UseUrls(IWebHostBuilder, String[]) 擴充方法
HTTP 繫結不會變更。
中斷性變更的類型
此變更會影響二進位相容性。
變更原因
原先的積極繫結行為會在不考慮已設定環境的情況下發生,且可能會在憑證尚未受到信任 (也就是因其是自我簽署憑證而受信任為根憑證授權單位) 時提供不佳的開發人員體驗。 當使用未受信任的憑證叫用 HTTPS 端點時,用戶端通常會產生不佳的使用者體驗。 舉例來說,它們可能會在無訊息的情況下失敗,或是顯示通知使用者的錯誤或警告畫面。
建議的動作
如果您未使用預設 https://localhost:5001
繫結,則不需要進行任何變更。 不過,如果您是使用此繫結,則請參閱為 ASP.NET Core Kestrel Web 伺服器設定端點來了解如何更新伺服器以啟用 HTTPS。
受影響的 API
N/A