国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

Asp.net原理(第一篇)

2019-11-17 02:12:16
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

asp.net原理(第一篇)

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)程的通信:

  1. aspnet_isapi和輔助進(jìn)程間的通訊是使用一組 "命名管道" 進(jìn)行的,命名管道 是一種Win32機(jī)制,用于跨進(jìn)程邊界傳輸機(jī)制,命名管道的工作方式。與管道相似:在一端傳入數(shù)據(jù),在另一端輸出相同的數(shù)據(jù).建立管道既可以連接本地進(jìn)程,也可以連接遠(yuǎn)程計(jì)算機(jī)上運(yùn)行的進(jìn)程,對(duì)于本地進(jìn)程間通訊,管道是Windows中最有效,最靈活的工具。
  2. ISAPI使用異步命名管道來(lái)將請(qǐng)求轉(zhuǎn)發(fā)給輔助進(jìn)程并獲得響應(yīng)。
  3. 輔助進(jìn)程 在需要查詢有關(guān)IIS環(huán)境的信息(即服務(wù)器變量)時(shí)又使用同步管道。
  4. ISAPI模塊創(chuàng)建固定數(shù)量的命名管道,并使用重疊的操作以通過(guò)小的線程池,處理同一時(shí)間進(jìn)行的連接。當(dāng)通過(guò)管道進(jìn)行的數(shù)據(jù)交換操作結(jié)束后,完成例程,將斷開(kāi)客戶端,并重新使用管道實(shí)例為新的客戶端服務(wù)。線程池和重疊操作均可以保證使ASP.NET ISAPI的性能達(dá)到令人滿意的水平。aspnet_isapi絕不會(huì)處理Http請(qǐng)求。

  IIS與aspnet_isapi的處理邏輯:

  1. 當(dāng)請(qǐng)求到達(dá)時(shí),IIS檢查資源類型并調(diào)用aspnet_isapi擴(kuò)展。如果啟用了默認(rèn)的進(jìn)程模型。aspnet_isapi會(huì)將請(qǐng)求排隊(duì)。并將請(qǐng)求分配給輔助進(jìn)程、所有的請(qǐng)求數(shù)據(jù)都是通過(guò)異步I/O發(fā)送。
  2. 收到請(qǐng)求后,ASP.NET輔助進(jìn)程將通知aspnet_isapi,它將為請(qǐng)求服務(wù)(建立管道)。
  3. 在輔助進(jìn)程的上下文中執(zhí)行請(qǐng)求。有時(shí),輔助進(jìn)程可能需要回調(diào)aspnet_isapi以完成請(qǐng)求,也就是需要說(shuō)枚舉服務(wù)器變量。這種情況下,輔助進(jìn)程將使用同步管道,因?yàn)檫@樣可以保持請(qǐng)求處理的邏輯順序。
  4. 完成后,響應(yīng)被發(fā)送到打開(kāi)了異步管道的aspnet_isapi。如果aspnet_isapi檢測(cè)到輔助進(jìn)程已取消,它將自動(dòng)終止請(qǐng)求并釋放所有相關(guān)的IIS資源。

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

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 秦皇岛市| 昔阳县| 龙江县| 赤壁市| 寻乌县| 晋江市| 盈江县| 松滋市| 汶上县| 抚顺县| 谢通门县| 略阳县| 永泰县| 穆棱市| 山丹县| 鸡东县| 白山市| 巨野县| 东兴市| 达孜县| 石嘴山市| 巴彦淖尔市| 腾冲县| 阿瓦提县| 南投市| 玉林市| 杭州市| 孝昌县| 尼勒克县| 鄱阳县| 兴化市| 贺兰县| 沁阳市| 公主岭市| 灵武市| 陕西省| 丹棱县| 宜君县| 谷城县| 永清县| 久治县|