【问题标题】:Does ASP.NET use sockets to connect clients to each worker process?ASP.NET 是否使用套接字将客户端连接到每个工作进程?
【发布时间】:2009-07-01 17:02:27
【问题描述】:

我问是因为我听说微软可能已经实现了一个优化的内核级驱动程序来处理 HTTP 流量,然后通过 IPC 和非套接字机制将其引导到各种工作进程。这是真的吗?如果是的话,是否有任何关于它如何工作的信息。我一般要求 IIS6 和 IIS7。

【问题讨论】:

    标签: asp.net iis iis-7 iis-6 asp.net-2.0


    【解决方案1】:

    微软可能已经实现了一个优化的内核级驱动程序来处理 HTTP 流量,然后通过 IPC 和非套接字机制将其引导到各种工作进程

    他们有,就是叫HTTP.SYS。希望处理 HTTP 请求的应用程序(包括 IIS)使用 API 来订阅请求。

    并记录在MSDN

    有用的信息:

    • WinXP SP2 也添加了它,但 IIS 5.1使用它。
    • 允许多个进程在同一个端口上接收 HTTP 请求(所以仅仅因为 IIS 正在运行并不会停止使用端口 80 的另一台服务器...但 URL 前缀必须不同)。
    • 不限于端口 80 (HTTP) 或 434 (HTTPS)(因此它可以在 IIS 运行时在 XP 上使用)。

    附加(基于评论):

    是否可以拦截所有入站请求,然后将它们传递到其最初预期的目标 URL?我只想捕捉请求发生的事实和一些信息,然后让请求照常处理。 – Leeks and Leaks

    根据文档(特别是this page):没有任何拦截能力的迹象。但 ETW 事件可能会提供您正在寻找的信息(这可能仅限于 Vista/2008/IIS7)

    【讨论】:

    • 是否有可能拦截所有入站请求,然后将它们交给他们原本打算的目标 URL?我只想捕捉请求发生的事实和一些信息,然后让请求像往常一样处理。
    猜你喜欢
    • 2010-12-20
    • 2021-02-03
    • 1970-01-01
    • 2013-09-06
    • 1970-01-01
    • 2014-12-20
    • 1970-01-01
    • 2015-02-08
    • 2011-04-21
    相关资源
    最近更新 更多