Kestrel: Libuv-transport markerad som föråldrad
Tidigare versioner av ASP.NET Core använde Libuv som en implementeringsinformation om hur asynkrona indata och utdata utfördes. I ASP.NET Core 2.0 utvecklades en alternativ, Socketbaserad transport. I ASP.NET Core 2.1 bytte Kestrel till att använda den -baserade transporten Socket
som standard. Libuv-stödet behölls av kompatibilitetsskäl.
Vid denna tidpunkt är användningen av den Socket
-baserade transporten mycket vanligare än Libuv-transporten. Därför markeras Libuv-stöd som föråldrat i .NET 5 och tas bort helt i .NET 6.0.
Som en del av den här ändringen kommer Libuv-stöd för nya operativsystemplattformar (till exempel Windows Arm64) inte att läggas till inom tidsramen för .NET 5.
Information om blockeringsproblem som kräver användning av Libuv-transport finns i GitHub-problemet på dotnet/aspnetcore#23409.
Version introducerad
5.0 Förhandsversion 8
Gammalt beteende
Libuv-API:erna är inte markerade som föråldrade.
Nytt beteende
Libuv-API:erna är markerade som föråldrade.
Orsak till ändringen
Den Socket
-baserade transporten är standardvärdet. Det finns inga övertygande skäl att fortsätta använda Libuv-transporten.
Rekommenderad åtgärd
Avbryt användningen av Libuv-paketet och tilläggsmetoderna.
Berörda API:er
- 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