|
在2007年9月份,我曾經寫了三篇詳細介紹IIS架構和ASP.NET運行時管道的文章,深入介紹了IIS 5.x與IIS 6.0HTTP請求的監聽與分發機制,以及ASP.NET運行時管道對HTTP請求的處理流程:
[原創]ASP.NET Process Model之一:IIS 和 ASP.NET ISAPI
[原創]ASP.NET Process Model之二:ASP.NET Http Runtime Pipeline - Part I
[原創]ASP.NET Process Model之二:ASP.NET Http Runtime Pipeline - Part II
很多人留言為何沒有IIS 7的介紹。在寫作《WCF深入剖析》中,為了剖析基于IIS的WCF服務寄宿(Hosting),再次對相關內容進行了研究,在這里一并與大家分享。
我們先來看看IIS 5.x是如何處理基于ASP.NET資源(比如.ASPx,.asmx等)請求的,整個過程基本上可以通過圖1體現。
IIS 5.x運行在進程INETInfo.exe中,在該進程中一個最重要的服務就是名為World Wide Web Publishing Service(簡稱W3SVC)的Windows Service。W3SVC的主要功能包括HTTP請求的監聽、工作進程的管理以及配置管理(通過從Metabase中加載相關配置信息)等。
當檢測到某個HTTP Request后,先根據擴展名判斷請求的是否是靜態資源(比如.html,.img,.txt,.xml等),如果是則直接將文件內容以HTTP Response的形式返回。如果是動態資源(比如.ASPx,ASP,php等等),則通過擴展名從IIS的腳本影射(Script Map)找到相應的ISAPI Dll。
NET技術:[原創]再談IIS與ASP.NET管道,轉載需保留來源! 鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。