IIS不同版本的WCF 的寄宿環境

       WCF 對寄宿的IIS 環境有最低的版本需求。最低的IIS 版本爲5.1,但是相對於高版本的IIS 環境,IIS5.1 只支持一個站點綁定一個應用池(only one site bound to one application pool)。

以上是IIS 5.1 的架構。整個架構分成2個部分。左邊的W3csvc.exe 寄宿着一個 HTTP 監聽器(http listener),加載進程,和管理配置。右邊的工作進程使得IIS 5.1 可以管理.Net 的託管應用域(managed .NET application domains).


IIS 6.0 的環境下,引入令人HTTP.SYS,它是kernel Mode Http 棧。HTTP.SYS 通過 W3csvc.exe 與IIS 5.1 中已經存在的Process 和 Configuration Manager 部分連接起來。



IIS 7.0 與早些版本的IIS 最大的不同在於它不單單支持HTTP協議的通信方式。它支持WCF所有的四種傳輸方式。同時在SvcHost.exe中增加了一個名爲WAS的操作系統服務。WAS 使得在IIS 模型下面可以寄宿任何的WCF 服務 ,並支持所有的傳輸方式。


       當監聽適配器啓動的時候,它會向WAS 中註冊同時獲得WAS/IIS 中關於指定通信協議的配置。此時,監聽適配器清楚的知道自己的站點支持那些應用請求。
       當第一個請求到來的時候,監聽器適配器將會調用WAS激活工作進程,加載請求最終指向的.NET 託管的應用域。請求接着被傳遞給負責處理請求的工作進程。工作進程並不關心具體的請求類型,WCF請求,ASP.NET 請求,或者其他IIS 7.0支持的請求。當請求到來的時候,激活進程被創建並使工作線程有效。
       當應用域內部的ServiceHost啓動的時候,application domain protocol handler 會調用一個EnsureServiceAvailable的靜態方法。這個方法是 協議無關的,它會激活整個服務,包括終結點和傳輸方式(不僅是調用它的那個protocol handler的傳輸方式)。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章