IIS6能夠爲每一個不一樣的虛擬目錄建立不一樣的程序池,這樣縮小了IIS的Application Pool的顆粒度,不一樣的虛擬目錄之間是互不影響的。html
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
一、當客戶端瀏覽器開始 HTTP 請求一個WEB 服務器的資源時,HTTP.sys 攔截到這個請求。htm
二、HTTP.sys 聯繫 WAS服務 獲取配置信息。blog
三、WAS 向配置存儲中心(applicationHost.config)請求配置信息。
四、WWW 服務接收到配置信息,配置信息指相似應用程序池配置信息,站點配置信息等等。
五、WWW 服務使用配置信息去配置 HTTP.sys 處理策略。
六、WAS爲請求建立一個進程(若是不存在的話)。
七、工做者進程處理請求並對HTTP.sys作出響應。
八、客戶端接受處處理結果信息。