2011-01-14 190 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序列化數據 - 不知道這一點。