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

标签 asp.net asp.net-core kestrel-http-server

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

最佳答案

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

更新:
出于安全原因,Kestrel 以前总是需要在边缘部署(暴露于来自 Internet 的流量)中使用反向代理。使用 ASP.Net Core 2.x 中的 Kestrel,情况不再如此。查看文档以获取更多信息。 Kestrel Web Server Documentation
Kestrel 1.x vs 2.x
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 用例:
    enter image description here
    红隼用例:
    enter image description here

    关于asp.net - HTTP.sys vs Kestrel : Why choose one over the other? 优点缺点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39248345/

    相关文章:

    asp.net - 按适当的列(即 TemplateField)对 gridView 进行排序

    asp.net-core - MVC6 支持预编译 View 吗?

    c# - 用于图像扩展的 ASPNET Core img src 通配符

    mysql - asp net core 2.0 mvc + kestrel - 在应用程序启动时加载 MySql 程序集?

    nginx - 如何在 nginx 代理后面使用 Unix 域套接字托管 ASP.NET Core 2.0 (Kestrel)?

    c# - 有没有办法先重定向页面然后执行剩余的代码

    c# - 是否可以使用 Mono 的 XSP Web 服务器托管 WCF 服务?

    c# - 什么异常(exception)?无效的CastException

    .net - 保护 Azure 上的 .NET Core API - 仍然接受设置了 RequireHttpsAttribute 的 HTTP

    c# - EPPlus - 保存在内存中创建的 excel 并在 excel 上打开它会出错