ASP.net请求处理

时间:2011-01-14 15:32:15

标签: asp.net named-pipes

我听说在扩展过滤后,请求从浏览器(客户端)发送到IIS (aspnet_isapi.dll)在ISAPI DLL和named pipe connections之间建立了几个worker process(w3wp.exe)

这些管道的名称是什么?那些管道会像我们与WCF一样充当沟通渠道吗?

2 个答案:

答案 0 :(得分:1)

你会发现here a superb explanation by Rick Strahl of how ASP.NET works,是的,命名管道在IIS5中用于inetinfo进程中的ISAPI DLL和工作进程之间的通信,但是在IIS6中,这不再是必需的,因为最低级别的HTTP堆栈已传输到内核驱动程序HTTP.SYS,后者将请求直接传递给工作进程。

命名管道是由操作系统内核管理的对象,其中有一个特定的Win32 API。名为管道绑定的WCF建立在这些之上,但在原始管道传输之上涉及更多层次。即使在使用命名管道用于ASP.NET的IIS5中,这些也不会像WCF使用它们那样使用,因此没有理由将它们视为连接或类似的任何方式。 System.IO.Pipes命名空间中的类型是一个更接近的比较,是OS管道API上更薄的包装器。

答案 1 :(得分:0)

这只是一个二进制管道,是Windows中进程之间通信的标准方法之一(其他是共享内存和com + iirc)。显然,您可以拥有多个工作进程,因此我不确定管道是否只有一个名称。我非常怀疑这是使用任何类型的.net序列化数据 - 不确定这一点。