IIS 工做原理之非託管代碼旅程(一)

  • IIS6改變

  IIS6能夠爲每一個不一樣的虛擬目錄建立不一樣的程序池,這樣縮小了IIS的Application Pool的顆粒度,不一樣的虛擬目錄之間是互不影響的。html

  • IIS6(和IIS7經典模式)與IIS7集成模式最大的區別

IIS6(和IIS7經典模式)是經過aspnet_isapi.dll(internet server application programming   interface )即IIS應用程序接口來處理。api

而IIS7集成模式以後,不須要經過aspnet_isapi.dll瀏覽器

  • 名詞解釋:

Http.sys:負責偵聽(Listen)來自於外部的Http請求,根據請求的Url,並經過WAS監視程序獲取applicationHost.Config,找到相應的應用程序池(Application Pool),當Http請求完成之後,它又負責將處理結果發送出去。服務器

http.sys內部創建一個緩衝區,將最近的請求處理結果保存起來。app

ApplicationPool:應用程序池,全部站點的處理都會發生在這裏進程裏,包括ISAPI dll的執行,當應用程序池接受到http請求後,交由程序池中運行的woker process:w3wp.exe(工做進程)來處理接下來的Http請求。spa

Worker Process:當工做進程接受到請求後,首先根據後綴名加載ISAPI拓展(如:aspx對應的映射是aspnet_isapi.dll),工做進程加載aspnet_isapi.dll後,由aspnet_isapi.dll負責加載Asp.net的運行環境CLR。ISAPI拓展是非託管代碼和託管代碼之間的橋樑。.net

WAS(Web Admin Service):這是一個監控程序,它一方面監控applicationHost.config,另外一方面也負責監控應用程序池(Application Pool)中的工做者進程的工做狀態,必要時它會關閉一個老的工做進程並建立一個新的取而代之。server

  • IIS非託管旅程地圖

     

                                            一、當客戶端瀏覽器開始 HTTP 請求一個WEB 服務器的資源時,HTTP.sys 攔截到這個請求。htm

                                            二、HTTP.sys 聯繫 WAS服務 獲取配置信息。blog

                                            三、WAS 向配置存儲中心(applicationHost.config)請求配置信息。

                                            四、WWW 服務接收到配置信息,配置信息指相似應用程序池配置信息,站點配置信息等等。

                                            五、WWW 服務使用配置信息去配置 HTTP.sys 處理策略。                                            

  六、WAS爲請求建立一個進程(若是不存在的話)。

  七、工做者進程處理請求並對HTTP.sys作出響應。

  八、客戶端接受處處理結果信息。

參考:http://www.cnblogs.com/fengzheng/p/3668283.html

相關文章
相關標籤/搜索