Kestrel: Markierung von libuv-Transport als veraltet
Frühere Versionen von ASP.NET Core haben Libuv als Implementierungsdetail für die Ausführung der asynchronen Ein- und Ausgabe verwendet. In ASP.NET Core 2.0 wurde ein alternativer Socket-basierter Transport entwickelt. In ASP.NET Core 2.1 wurde Kestrel standardmäßig auf die Verwendung des Socket
-basierten Transports umgestellt. Die Unterstützung von Libuv wurde aus Kompatibilitätsgründen beibehalten.
Heute ist die Verwendung des Socket
-basierten Transports weitaus häufiger als des Libuv-Transports. Folglich ist die Libuv-Unterstützung in .NET 5 als veraltet markiert und wird in .NET 6.0 vollständig entfernt.
Im Rahmen dieser Änderung wird die Libuv-Unterstützung für neue Betriebssystemplattformen (wie Windows Arm64) nicht im .NET 5-Zeitrahmen hinzugefügt.
Informationen zu Blockierungsproblemen, die die Verwendung des Libuv-Transports erfordern, finden Sie im GitHub Issue unter dotnet/aspnetcore#23409.
Eingeführt in Version
5.0 Preview 8
Altes Verhalten
Die Libuv-APIs sind nicht als veraltet markiert.
Neues Verhalten
Die Libuv-APIs sind als veraltet markiert.
Grund für die Änderung
Der Socket
-basierte Transport ist die Standardeinstellung. Es gibt keine überzeugenden Gründe, den Libuv-Transport weiterhin zu verwenden.
Empfohlene Aktion
Beenden Sie die Verwendung des Libuv-Pakets und der Erweiterungsmethoden.
Betroffene APIs
- 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