Asp.net (第一篇)
當(dāng)用戶在瀏覽器輸入一個URL地址后,瀏覽器會發(fā)送一個請求到服務(wù)器。這時候在服務(wù)器上第一個負責(zé)處理請求的是IIS。然后IIS再根據(jù)請求的URL擴展名將請求分發(fā)給不同的ISAPI處理。
流程如下:
1、IIS => aspnet_isapi階段
ISAPI是一個底層的WIN32 API,開發(fā)者可以使用這些接口深入到IIS,讓IIS支持各種其他處理程序。ISAPI是一個橋接口,通常用于高層次的工具與IIS之間的接駁。例如Windows下的Apache與Tomcat就是構(gòu)建于ISAPI之上。ISAPI是自定義Web請求處理中第一個IIS入口點。
在上述步驟中,對于html頁面,txt文件,jpeg和gif圖像的請求,IIS就自己處理了,當(dāng)發(fā)現(xiàn)請求是Asp.net的資源時(如*.aspx,*.asmx,*.ashx),請求將傳遞到ASP.NET ISAPI擴展aspnet_isapi.dll。
aspnet_isapi.dll可以處理多種資源類型,包括Web服務(wù)和HTTP處理程序調(diào)用等。
如IIS7中的處理程序映射:
以上映射的意思是,將.aspx擴展名的路徑傳遞給aspnet_isapi.dll處理程序處理。
2、aspnet_isapi => 輔助進程
輔助進程在(IIS5里是aspnet_wp.exe;IIS6里是w3wp.exe)。
aspnet_isapi與輔助進程的通信:
IIS與aspnet_isapi的處理邏輯:
3、Asp.net運行時環(huán)境:
構(gòu)成Asp.net運行時環(huán)境的可執(zhí)行文件如下:
名稱 | 類型 | 賬戶 |
aspnet_isapi.dll | Win32 DLL | LOCAL SYSTEM |
aspnet_wp.exe | Win32 EXE | ASPNET |
aspnet_filter.dll | Win32 DLL | LOCAL SYSTEM |
aspnet_state.exe | Win32 EXE | ASPNET |
aspnet_filter.dll組件是一個小的Win32 ISAPI篩選器,用來備份ASP.NET應(yīng)用程序的無Cookie會話狀態(tài)。
aspnet_state.ext的作用對Web應(yīng)用程序更為重要,因為它用于管理會話狀態(tài)。
好了,到目前為止,IIS就已經(jīng)將請求轉(zhuǎn)交到了輔助進程,而這個輔助進程實際上就是A
新聞熱點
疑難解答