Asp.net (第一篇)
當(dāng)用戶在瀏覽器輸入一個(gè)URL地址后,瀏覽器會(huì)發(fā)送一個(gè)請(qǐng)求到服務(wù)器。這時(shí)候在服務(wù)器上第一個(gè)負(fù)責(zé)處理請(qǐng)求的是IIS。然后IIS再根據(jù)請(qǐng)求的URL擴(kuò)展名將請(qǐng)求分發(fā)給不同的ISAPI處理。
流程如下:
1、IIS => aspnet_isapi階段
ISAPI是一個(gè)底層的WIN32 API,開(kāi)發(fā)者可以使用這些接口深入到IIS,讓IIS支持各種其他處理程序。ISAPI是一個(gè)橋接口,通常用于高層次的工具與IIS之間的接駁。例如Windows下的Apache與Tomcat就是構(gòu)建于ISAPI之上。ISAPI是自定義Web請(qǐng)求處理中第一個(gè)IIS入口點(diǎn)。
在上述步驟中,對(duì)于html頁(yè)面,txt文件,jpeg和gif圖像的請(qǐng)求,IIS就自己處理了,當(dāng)發(fā)現(xiàn)請(qǐng)求是Asp.net的資源時(shí)(如*.aspx,*.asmx,*.ashx),請(qǐng)求將傳遞到ASP.NET ISAPI擴(kuò)展aspnet_isapi.dll。
aspnet_isapi.dll可以處理多種資源類型,包括Web服務(wù)和HTTP處理程序調(diào)用等。
如IIS7中的處理程序映射:

以上映射的意思是,將.aspx擴(kuò)展名的路徑傳遞給aspnet_isapi.dll處理程序處理。
2、aspnet_isapi => 輔助進(jìn)程
輔助進(jìn)程在(IIS5里是aspnet_wp.exe;IIS6里是w3wp.exe)。
aspnet_isapi與輔助進(jìn)程的通信:
IIS與aspnet_isapi的處理邏輯:
3、Asp.net運(yùn)行時(shí)環(huán)境:
構(gòu)成Asp.net運(yùn)行時(shí)環(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組件是一個(gè)小的Win32 ISAPI篩選器,用來(lái)備份ASP.NET應(yīng)用程序的無(wú)Cookie會(huì)話狀態(tài)。
aspnet_state.ext的作用對(duì)Web應(yīng)用程序更為重要,因?yàn)樗糜诠芾頃?huì)話狀態(tài)。
好了,到目前為止,IIS就已經(jīng)將請(qǐng)求轉(zhuǎn)交到了輔助進(jìn)程,而這個(gè)輔助進(jìn)程實(shí)際上就是A
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注