Joh*_*ohn 5 kestrel-http-server asp.net-core
我刚刚意识到 ASP.NET Core 应用程序不是纯粹的 CLR 应用程序——它们总是依赖于额外的二进制库:通过 Kestrel 的 libuv,或者可能不太常用的 http.sys。
我觉得这很令人惊讶,因为我原以为 .NET Core(以及 .NET Standard)下已经有足够的网络 api 来制作一个性能不错的 Web 服务器,纯粹在 .NET 中使用异步 IO - 但他们并没有走那条路.
所以:
WebClient,HttpRequest或者HttpClient不会用libuv,是否正确?编辑:
我查看了 Kestrel 源代码,除了一个名为的程序集之外,Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv还有一个名为Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets. 套接字程序集的相应 NuGet 包仅处于预览状态。(当然,套接字程序集不依赖于 libuv。)
小智 5
计划是切换到 Sockets,但它可能无法及时用于 Net Core 2.1,但可以向公众开放。
似乎截至 2017 年 12 月,由于性能问题,他们不得不从 Sockets 切换回 Libuv:
见https://github.com/aspnet/KestrelHttpServer/issues/2220
| 归档时间: |
|
| 查看次数: |
3281 次 |
| 最近记录: |