Kestrel: Přenos Libuv označený jako zastaralý
Starší verze ASP.NET Core používaly knihovnu Libuv jako podrobnosti implementace, jak byl proveden asynchronní vstup a výstup. V ASP.NET Core 2.0 byla vyvinuta alternativní Socketpřenos založená na platformě. V ASP.NET Core 2.1 se Kestrel ve výchozím nastavení přepnul na použití Socket
přenosu na základě. Podpora knihovny Libuv byla zachována z důvodů kompatibility.
V tomto okamžiku je použití přenosu založeného na Socket
bázi mnohem častější než přenos Libuv. V důsledku toho je podpora Libuv označena jako zastaralá v .NET 5 a bude zcela odebrána v .NET 6.0.
V rámci této změny se podpora Libuv pro nové platformy operačního systému (například Windows Arm64) nepřidá do časového rámce .NET 5.
Diskuzi o blokujících problémech, které vyžadují použití přenosu Libuv, najdete v tématu o problému GitHubu na adrese dotnet/aspnetcore#23409.
Zavedená verze
5.0 Preview 8
Staré chování
Rozhraní API Libuv nejsou označená jako zastaralá.
Nové chování
Rozhraní API Libuv jsou označená jako zastaralá.
Důvod změny
Přenos Socket
založený na základu je výchozí. Neexistuje žádný přesvědčivý důvod, proč pokračovat v používání přenosu Libuv.
Doporučená akce
Ukončete použití balíčku Libuv a rozšiřujících metod.
Ovlivněná rozhraní 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