【发布时间】:2016-11-21 23:53:01
【问题描述】:
http.sys 是 Windows 中的内核模式驱动程序,它极大地加快了传入 HTTP 请求的处理和路由。它是在 Windows NT 4 时代添加的,与 Apache 相比,它为当时尚不成熟的 IIS 提供了基准提升。
对于那些不熟悉的人:它是一个劫持传入 HTTP 请求的组件(在端口 80 和 443 上,您也可以将其配置为监视其他端口)并根据其配置将它们路由到不同的用户级应用程序,请参阅 MSDN 了解更多详细信息: https://msdn.microsoft.com/en-us/library/windows/desktop/aa364510(v=vs.85).aspx
今天,只要您使用 IIS 来托管您的应用程序,您就可以利用 http.sys。
但是,我找不到任何说明自托管 ASP.NET Core 应用程序是否将使用 http.sys(如果存在)的信息。
【问题讨论】:
-
我找到了Rick Strahl的这个页面。 他说: 首先,如果您想在一台服务器上运行多个共享端口 80 和端口 443 的应用程序,则不能直接运行 Kestrel。 Kestrel 不支持在单个 IP 地址上允许多个端口 80 绑定所需的主机头路由。如果没有 IIS(实际上是 http.sys),您目前无法单独使用 Kestrel 来执行此操作(我认为这也没有计划)。看起来,它没有......
-
所以如果它在后台使用http.sys,它也将支持主机头路由,这就是我的理解,也许我错了......
标签: asp.net-core http.sys