Skip to main content
 首页 » 编程设计

asp.net之HTTP.sys vs Kestrel : Why choose one over the other 优点缺点

2024年11月24日24birdshome

两个独立但相似的服务器的原因是什么?
有什么区别?
我可以在 docker 中同时运行吗?
两者是否都支持相同的东西,比如所有的身份验证类型?

请您参考如下方法:

Kestrel 与 HTTP.sys - 我在下面强调了基本差异。
(这些词是微软的,我只是为了简洁和清晰起见对其进行了编辑。请参阅底部链接的来源)。

更新:
出于安全原因,Kestrel 以前总是需要在边缘部署(暴露于来自 Internet 的流量)中使用反向代理。使用 ASP.Net Core 2.x 中的 Kestrel,情况不再如此。查看文档以获取更多信息。 Kestrel Web Server Documentation

Weblistener was renamed HTTP.sys in ASP.NET Core 2.0
资料来源:

  • Docs.Microsoft.com Web server implementations in ASP.NET Core
  • Docs.Microsoft.com HTTP.sys web server implementation in ASP.NET Core

  • HTTP.sys 仅限 Windows 用于 ASP.NET Core 的 HTTP/Web 服务器,允许您公开服务器 直接上网无需使用 IIS。 HTTP.sys 建立在 Http.Sys(同样成熟的技术,也支持 IIS 的 HTTP 监听器)之上,如此 功能非常丰富 提供针对各种攻击的保护 .
    红隼 另一方面,是 跨平台用于 ASP.NET Core 的 Web 服务器,设计为 在代理后面运行 (例如 IIS 或 Nginx)和 不应该直接面向互联网部署 . Kestrel 相对较新和 没有完整的防御攻击 .也是 功能不够丰富 作为 HTTP.sys 并带有超时限制、大小限制和并发用户限制。

    本质上,选择归结为您的 Web 应用程序的部署方案。
    HTTP.sys 用例:

    红隼用例: