이전 버전의 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에서 완전히 제거됩니다.
이 변경의 일환으로 새 운영 체제 플랫폼(예: Windows Arm64)에 대한 Libuv 지원은 .NET 5 기간에 추가되지 않습니다.
Libuv 전송을 사용해야 하는 차단 문제에 대한 자세한 내용은 dotnet/aspnetcore#23409의 GitHub 문제를 참조하세요.
도입된 버전
5.0 미리 보기 8
기존 동작
Libuv API는 사용되지 않는 것으로 표시되지 않습니다.
새 동작
Libuv API는 사용되지 않는 것으로 표시됩니다.
변경 이유
Socket
-based 전송이 기본값입니다. 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
.NET