四虎精品视频-四虎精品成人免费网站-四虎黄色网-四虎国产视频-国产免费91-国产蜜臀97一区二区三区

ASP.NET的運(yùn)行原理與運(yùn)行機(jī)制

  當(dāng)一個(gè)HTTP請(qǐng)求到服務(wù)器并被IIS接收到之后,IIS首先通過客戶端請(qǐng)求的頁面類型為其加載相應(yīng)的.dll文件,然后在處理過程中將這條請(qǐng)求發(fā)送給能夠處理這個(gè)請(qǐng)求的模塊。在ASP.NET 3.5中,這個(gè)模塊叫做HttpHandler(HTTP處理程序組件),之所以.ASPx文件可以被服務(wù)器處理,就是因?yàn)樵?a href=/yuedu/fuwuqi/ target=_blank class=infotextkey>服務(wù)器端有默認(rèn)的HttpHandler專門處理.ASPx文件。IIS在將這條請(qǐng)求發(fā)送給能夠處理這個(gè)請(qǐng)求的模塊之前,還需要經(jīng)過一些HttpModule的處理,這些都是系統(tǒng)默認(rèn)的Modules(用于獲取當(dāng)前應(yīng)用程序的模塊集合),在這個(gè)HTTP請(qǐng)求傳到HttpHandler之前要經(jīng)過不同的HttpModule的處理。這樣做的好處,一是為了一些必需的過程,二是為了安全性,三是為了提高效率,四是為了用戶能夠在更多的環(huán)節(jié)上進(jìn)行控制,增強(qiáng)用戶的控制能力。ASP.NET 3.5運(yùn)行原理如圖1.1所示。

圖1.1  ASP.NET 3.5運(yùn)行原理

  說明:HttpModule模塊是一個(gè)組件,可以注冊(cè)為ASP.NET 3.5請(qǐng)求生命周期的一部分,當(dāng)處理該組件時(shí),該組件可以讀取或更改請(qǐng)求或響應(yīng)。HttpModule模塊通常用于執(zhí)行需要監(jiān)視每個(gè)請(qǐng)求的特殊任務(wù),如安全或站點(diǎn)統(tǒng)計(jì)信息。

 (PS:

  HttpModule 概述:

  暫時(shí)先不考慮我們自己實(shí)現(xiàn)Http Module的情況。在.NET中,Http Module 是實(shí)現(xiàn)了IHttpModule接口的程序集。IHttpModule 接口本身并沒有什么好大寫特寫的,由它的名字可以出,它不過是一個(gè)普普通通的接口而已。實(shí)際上,我們關(guān)心的是實(shí)現(xiàn)了這些接口的類,如果我們也編寫代碼實(shí)現(xiàn)了這個(gè)接口,那么有什么用途。一般來說,我們可以將ASP.NET中的事件分成三個(gè)級(jí)別,最頂層是 應(yīng)用程序級(jí)事件、其次是頁面級(jí)事件、最下面是控件級(jí)事件,事件的觸發(fā)分別與 應(yīng)用程序周期、頁面周期、控件周期緊密相關(guān)。而 Http Module 的作用是與應(yīng)用程序事件 密切相關(guān)的。

  我們通過Http Module在Http請(qǐng)求管道(Pipeline)中注冊(cè)期望對(duì)應(yīng)用程序事件做出反應(yīng)的方法,在相應(yīng)的事件觸發(fā)的時(shí)候(比如說BeginRequest事件,它在應(yīng)用程序收到一個(gè)Http請(qǐng)求并即將對(duì)其進(jìn)行處理時(shí)觸發(fā)),便會(huì)調(diào)用Http Module注冊(cè)了的方法,實(shí)際的工作在這些方法中執(zhí)行。.NET 本身已經(jīng)有很多的Http Module,其中包括 表單驗(yàn)證Module(FormsAuthenticationModule), Session 狀態(tài)Module(SessionStateModule),輸出緩存Module (OutputCacheModule)等。

更多了解:http://www.cnblogs.com/jimmyzhang/archive/2007/11/25/971878.html

  )

  ASP.NET 3.5運(yùn)行機(jī)制如圖1.2所示。

  通常情況下,ASP.NET框架搭建在Windows Server(服務(wù)器版操作系統(tǒng))+IIS(Web服務(wù)器,是InterNET信息服務(wù)管理器的英文縮寫)環(huán)境中,在安裝.NET Framework時(shí),安裝程序?qū)?huì)在IIS中注冊(cè)ASP.NET所需的ISAPI擴(kuò)展(ASPNET_isapi.dll),這就使得作為ASP.NET宿主的IIS在接收到客戶端的HTTP請(qǐng)求后,將響應(yīng)請(qǐng)求的控制權(quán)交給ASP.NET運(yùn)行。

  ASP.NET運(yùn)行時(shí)接收到請(qǐng)求后,會(huì)判斷站點(diǎn)是否為第一次被訪問,如果是第一次訪問,則運(yùn)行初始化工作(如加載Bin目錄中的DLL動(dòng)態(tài)鏈接庫,讀取Web.Config網(wǎng)站配置文件,初始化HttpApplication實(shí)例,編譯和加載Global.asax文件等)。ASP.NET運(yùn)行時(shí)還負(fù)責(zé)創(chuàng)建請(qǐng)求響應(yīng)線程的HttpContext上下文實(shí)例和創(chuàng)建承載響應(yīng)結(jié)果的HttpTextWriter實(shí)例。然后,ASP.NET運(yùn)行時(shí)尋找合適的HttpHandler(通常就是具有的ASP.NET頁面)處理HTTP請(qǐng)求,并等HttpHandler返回請(qǐng)求處理結(jié)果。最后,ASP.NET運(yùn)行時(shí)在完成一些后續(xù)工作之后,如保存Session、異常處理,再通過IIS把響應(yīng)結(jié)構(gòu)返回給客戶端。

圖1.2  ASP.NET 3.5運(yùn)行機(jī)制

  注意:ASP.NET ISAPI工作的主要任務(wù)就是安排ASPNET_WP.exe處理請(qǐng)求,并監(jiān)視ASPNET_ WP.exe進(jìn)程的執(zhí)行情況,如果ASPNET_WP.exe進(jìn)程不能完成任務(wù),ASP.NET ISAPI就安排一個(gè)新的ASPNET_WP.exe來處理工作。ASPNET_WP.exe的主要任務(wù)是將請(qǐng)求交給一系列稱為HTTP管道的托管對(duì)象。如果把ASP.NET ISAPI比做銷售商,那么ASPNET_WP.exe就是生產(chǎn)商,而HTTP管道就是生產(chǎn)的流水線,負(fù)責(zé)流水線的小組就是HttpRuntime。生產(chǎn)商ASPNET_WP.exe會(huì)將訂單(HTTP請(qǐng)求)交給HttpRuntime小組的工作人員ProcessRequest(HttpWorkerRequest wr),HttpRuntime根據(jù)內(nèi)部的分工,最終由ProcessRequestInternal(HttpWorkerRequest wr)在流水線上進(jìn)行生產(chǎn)。

NET技術(shù)ASP.NET的運(yùn)行原理與運(yùn)行機(jī)制,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 羞羞的视频| 恋爱三万英尺| superstar电影在线播放| 五年级下册第四单元语文园地| 翡翠恋人免费观看全集电视剧高清| 裸色亮片| 拔萝卜电影| 睡前搞笑故事| 安渡| 被调教的女人2| 刀客家族的女人演员表| 六年级上册脱式计算题| wenxi| 钱月笙| 头文字d里演员表| 大海中的船歌词歌谱| 视频999| 宋恩彩为艺术奉献的作品有哪些| 卧虎藏龙演员名单| 散文诗二首批注| disturbia| 秀人网xiuren大尺度| 曹查理电影大全免费观看国语| 带动气氛的mc台词| 李莉莉| 强电影| iambigbig girl英文歌| 俺去也电影网| 乔什布洛林| 真实游戏在线观看免费完整版| 美女撒尿视频| 石璐| 白宝山电视剧26集免费观看| 让我听懂你的语言歌词| 沈月个人简历资料| 花非花电视剧演员表| 误杀2 电影| 扎西顿珠的个人资料简介 | 叶玉卿演过的电影| 浙江卫视今日节目表| 闺蜜之夏 电影|