2011-01-14 156 views
0

我听说当一个请求从浏览器(客户端)到IIS,在扩展筛选 (aspnet_isapi.dll)之后,在ISAPI DLL和worker process(w3wp.exe)之间建立了几个named pipe connectionsASP.net请求处理

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

回答

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的封装要薄得多。

0

这只是一个二进制管道,是windows中进程间通信的标准方式之一(其他是共享内存和com + iirc)。显然,你可以有几个工作进程,所以我不确定这个管道有一个单一的名字。我非常怀疑这是使用任何.net序列化数据 - 不知道这一点。