一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

ASP.NET的運行原理與運行機制

  當一個HTTP請求到服務器并被IIS接收到之后,IIS首先通過客戶端請求的頁面類型為其加載相應的.dll文件,然后在處理過程中將這條請求發送給能夠處理這個請求的模塊。在ASP.NET 3.5中,這個模塊叫做HttpHandler(HTTP處理程序組件),之所以.ASPx文件可以被服務器處理,就是因為在服務器端有默認的HttpHandler專門處理.ASPx文件。IIS在將這條請求發送給能夠處理這個請求的模塊之前,還需要經過一些HttpModule的處理,這些都是系統默認的Modules(用于獲取當前應用程序的模塊集合),在這個HTTP請求傳到HttpHandler之前要經過不同的HttpModule的處理。這樣做的好處,一是為了一些必需的過程,二是為了安全性,三是為了提高效率,四是為了用戶能夠在更多的環節上進行控制,增強用戶的控制能力。ASP.NET 3.5運行原理如圖1.1所示。

圖1.1  ASP.NET 3.5運行原理

  說明:HttpModule模塊是一個組件,可以注冊為ASP.NET 3.5請求生命周期的一部分,當處理該組件時,該組件可以讀取或更改請求或響應。HttpModule模塊通常用于執行需要監視每個請求的特殊任務,如安全或站點統計信息。

 (PS:

  HttpModule 概述:

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

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

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

  )

  ASP.NET 3.5運行機制如圖1.2所示。

  通常情況下,ASP.NET框架搭建在Windows Server(服務器版操作系統)+IIS(Web服務器,是InterNET信息服務管理器的英文縮寫)環境中,在安裝.NET Framework時,安裝程序將會在IIS中注冊ASP.NET所需的ISAPI擴展(ASPNET_isapi.dll),這就使得作為ASP.NET宿主的IIS在接收到客戶端的HTTP請求后,將響應請求的控制權交給ASP.NET運行。

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

圖1.2  ASP.NET 3.5運行機制

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

NET技術ASP.NET的運行原理與運行機制,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产一区二区三区在线看 | 日韩精品一区二区三区在线观看 | 欧美videos极品另类 | 岛国毛片 | 4k岛国精品午夜高清在线观看 | 国产桃色在线成免费视频 | 久久精品全国免费观看国产 | 国产91成人精品亚洲精品 | 加勒比精品视频 | 精品免费福利视频 | 国产资源在线看 | 美女图片在线视频精品播放 | 色婷婷中文字幕在线一区天堂 | 久久www免费人成看片色多多 | 永久网址:fb000.xyz| 免费观看国产精品 | 色六月婷婷 | 337p欧美 | 国产成人综合精品一区 | 狠狠五月深爱婷婷网免费 | 国产美女一区二区在线观看 | 国产男女视频在线观看 | 激情六月丁香 | a男人的天堂久久a毛片 | 四虎欧美永久在线精品免费 | 五月婷婷在线观看 | 久久精品全国免费观看国产 | 亚洲人成影网站~色 | 国产大片黄在线观看 | 中文字幕永久免费视频 | 婷婷在线视频国产综合 | 99国产精品九九视频免费看 | 成年在线视频 | 亚洲国产精品自产在线播放 | 欧美xxxx三人交性视频 | 久久国产精品-久久精品 | 天天干天天操天天干 | 极品丝袜高跟91极品系列 | 国产精品二区页在线播放 | 男人扒开女人腿使劲桶动态图 | 亚洲成人综合在线 |