Kestrel:Libuv 傳輸已標示為過時
舊版的 ASP.NET Core 使用 Libuv 作為非同步輸入和輸出執行方式的實作詳細資料。 在 ASP.NET Core 2.0 中,已開發替代的 Socket 型傳輸。 在 ASP.NET Core 2.1 中,Kestrel 預設會切換為使用 Socket
型傳輸。 基於相容性考量,已維護 Libuv 支援。
目前,使用 Socket
型傳輸比 Libuv 傳輸更為常見。 因此,Libuv 支援在 .NET 5 中標示為已淘汰,並且會在 .NET 6.0 中完全移除。
在此變更過程中,將不會在 .NET 5 個時間範圍內新增這類新作業系統平台 (例如 Windows Arm64) 的 Libuv 支援。
關於封鎖需要使用 Libuv 傳輸的問題有關的討論,請參閱 dotnet/aspnetcore#23409 的 GitHub 問題。
導入的版本
5.0 Preview 8
舊的行為
Libuv API 未標示為已淘汰。
新的行為
Libuv API 標示為已淘汰。
變更原因
Socket
型傳輸是預設傳輸。 使用 Libuv 傳輸並沒有任何令人信服的理由。
建議的動作
停止使用 Libuv 套件和擴充方法。
受影響的 API
- WebHostBuilderLibuvExtensions
- WebHostBuilderLibuvExtensions.UseLibuv
- Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.LibuvTransportOptions
- Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.LibuvTransportOptions.ThreadCount
- Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.LibuvTransportOptions.NoDelay
- Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.LibuvTransportOptions.MaxWriteBufferSize
- Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.LibuvTransportOptions.MaxReadBufferSize
Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.LibuvTransportOptions.Backlog