ASP.NET是否使用套接字将客户端连接到每个工作进程?

时间:2009-07-01 17:02:27

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

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

1 个答案:

答案 0 :(得分:1)

  

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

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

记录于MSDN

有用的信息:

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

附加(根据评论):

  

是否可以拦截所有入站请求,然后将其移交给原先预期的目标网址?我想捕获请求发生的事实和一些信息,然后像往常一样处理请求。 - Leeks and Leaks

基于文档(特别是this page):没有拦截功能的指示。但ETW事件可能会提供您正在寻找的信息(这可能只是Vista / 2008 / IIS7)