成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

ASP.NET對請求處理過程的操作與分析

開發 后端
ASP.NET請求處理過程是基于管道模型的,在模型中ASP.NET把http請求傳遞給管道中的所有模塊。每個模塊都接收http請求并有完全控制權限。本文就ASP.NET開發語言對請求處理過程進行詳細分析,希望能對各位讀者起到或多或少的幫助。

  當請求一個*.aspx文件的時候,這個請求會被inetinfo.exe進程截獲,它判斷文件的后綴(aspx)之后,將這個請求轉交給 ASPNET_ISAPI.dll,ASPNET_ISAPI.dll會通過http管道(Http PipeLine)將請求發送給ASPNET_WP.exe進程,在ASPNET_WP.exe進程中通過HttpRuntime來處理這個請求,處理完畢將結果返回客戶端。

  inetinfo.exe進程:是www服務的進程,IIS服務和ASPNET_ISAPI.DLL都寄存在此進程中。

  ASPNET_ISAPI.DLL:是處理。aspx文件的win32組件。其實IIS服務器是只能識別。html文件的,當IIS服務器發現被請求的文件是。aspx文件時,IIS服務器將其交給aspnet_isapi.dll來處理。

  aspnet_wp.exe進程:ASP.NET框架進程,提供。net運行的托管環境,。net的CLR(公共語言運行時)就是寄存在此進程中。

  ASP.NET Framework處理一個Http Request的流程:

  HttpRequest-->inetinfo.exe-->ASPNET_ISAPI.dll-->ASPNET_WP.exe-->HttpRuntime-->HttpApplication Factory-->HttpApplication-->HttpModule-->HttpHandler Factory-->HttpHandler-->HttpHandler.ProcessRequest()

  ASP.NET請求處理過程是基于管道模型的,這個管道模型是由多個HttpModule和HttpHandler組成,ASP.NET 把http請求依次傳遞給管道中各個HttpModule,最終被HttpHandler處理,處理完成后,再次經過管道中的HTTP模塊,把結果返回給客戶端。我們可以在每個HttpModule中都可以干預請求的處理過程。

  注意:在http請求的處理過程中,只能調用一個HttpHandler,但可以調用多個HttpModule。

  當請求到達HttpModule的時候,系統還沒有對這個請求真正處理,但是我們可以在這個請求傳遞到處理中心(HttpHandler)之前附加一些其它信息,或者截獲的這個請求并作一些額外的工作,也或者終止請求等。在HttpHandler處理完請求之后,我們可以再在相應的HttpModule中把請求處理的結果進行再次加工返回客戶端。

  HttpModule

  HTTP模塊是實現了System.Web.IhttpModule接口的類。

  IHttpModule接口的聲明:

  1. public interface IHttpModule  
  2. {  
  3. void Init (HttpApplication context);  
  4. void Dispose ();  

  Init 方法:系統初始化的時候自動調用,這個方法允許HTTP模塊向HttpApplication 對象中的事件注冊自己的事件處理程序。

  Dispose方法: 這個方法給予HTTP模塊在對象被垃圾收集之前執行清理的機會。此方法一般無需編寫代碼。

  HTTP模塊可以向System.Web.HttpApplication對象注冊下面一系列事件:

  AcquireRequestState 當ASP.NET運行時準備好接收當前HTTP請求的對話狀態的時候引發這個事件。

  AuthenticateRequest 當ASP.NET 運行時準備驗證用戶身份的時候引發這個事件。

  AuthorizeRequest 當ASP.NET運行時準備授權用戶訪問資源的時候引發這個事件。

  BeginRequest 當ASP.NET運行時接收到新的HTTP請求的時候引發這個事件。

  Disposed 當ASP.NET完成HTTP請求的處理過程時引發這個事件。

  EndRequest 把響應內容發送到客戶端之前引發這個事件。

  Error 在處理HTTP請求的過程中出現未處理異常的時候引發這個事件。

  PostRequestHandlerExecute 在HTTP處理程序結束執行的時候引發這個事件。

  PreRequestHandlerExecute 在ASP.NET開始執行HTTP請求的處理程序之前引發這個事件。在這個事件之后,ASP.NET 把該請求轉發給適當的HTTP處理程序。

  PreSendRequestContent 在ASP.NET把響應內容發送到客戶端之前引發這個事件。這個事件允許我們在內容到達客戶端之前改變響應內容。我們可以使用這個事件給頁面輸出添加用于所有頁面的內容。例如通用菜單、頭信息或腳信息。

  PreSendRequestHeaders 在ASP.NET把HTTP響應頭信息發送給客戶端之前引發這個事件。在頭信息到達客戶端之前,這個事件允許我們改變它的內容。我們可以使用這個事件在頭信息中添加cookie和自定義數據。

  ReleaseRequestState 當ASP.NET結束所搜有的請求處理程序執行的時候引發這個事件。

  ResolveRequestCache 我們引發這個事件來決定是否可以使用從輸出緩沖返回的內容來結束請求。這依賴于Web應用程序的輸出緩沖時怎樣設置的。

  UpdateRequestCache 當ASP.NET完成了當前的HTTP請求的處理,并且輸出內容已經準備好添加給輸出緩沖的時候,引發這個事件。這依賴于Web應用程序的輸出緩沖是如何設置的。

【編輯推薦】

  1. IIS6的ASP.NET ISAPI請求處理過程
  2. IIS5、IIS6、IIS7的ASP.net請求處理過程比較
  3. 13.1.1 IIS 5.0中的ASP.NET請求處理過程
  4. 13.1.2 IIS 6.0中的ASP.NET請求處理過程
  5. 13.1.3 IIS 7.0中的ASP.NET請求處理過程
責任編輯:韓亞珊 來源: 中國IT實驗室
相關推薦

2009-07-24 10:57:41

ASP.NET ISAIIS6

2011-04-13 15:50:49

.htmHTTP請求處理

2009-10-15 14:50:34

ASP.NET Rou

2009-07-29 17:29:46

ASP與ASP.NET

2010-07-22 09:13:00

ASP.NET

2009-07-27 13:25:15

Postback程序處ASP.NET

2011-02-21 13:26:47

Postfix郵件處理

2009-07-20 17:49:07

JSF請求處理

2009-07-20 13:14:25

安裝ASP.NET A

2009-03-13 10:58:48

ASP.NetMVC框架編程

2009-08-14 17:57:43

ASP.NET MVC

2009-07-20 16:04:37

ASP.NET fra

2009-07-30 13:28:55

ASP.NET中的ja

2009-07-24 09:02:24

ASP.Net RSA

2009-07-24 15:47:35

ASP.NET與ASP

2009-07-28 15:29:03

實現HTTP請求ASP.NET

2010-05-06 13:33:47

Asp.Net負載均衡

2009-12-02 09:07:45

ASP.NET 4.0

2009-07-27 13:46:48

ASP.NET編程日期與時間的處理

2009-11-06 09:23:41

ASP.NET高效分頁
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 狠狠操在线 | 精品九九 | 亚洲精品一二三区 | 国产剧情一区二区三区 | 日本一二三区在线观看 | 97免费在线视频 | 伊人久久麻豆 | 国产91久久久久久 | 天天综合日日夜夜 | www久久久 | 国产精品夜夜夜一区二区三区尤 | 成人精品视频在线 | 999精品网 | 99视频在线 | 91麻豆精品国产91久久久久久久久 | 日韩精品一区二区三区中文在线 | 91综合网| 成人午夜视频在线观看 | 欧美日韩久久精品 | 日本中文字幕日韩精品免费 | 成人福利在线观看 | 国产aⅴ爽av久久久久久久 | 成人免费黄视频 | 亚洲自拍偷拍免费视频 | 国产丝袜人妖cd露出 | 亚洲人成人一区二区在线观看 | 亚洲喷水 | 国产一区二区三区在线免费观看 | 午夜精品一区二区三区在线播放 | 国产96色在线 | 国产精品自拍啪啪 | 日韩成人免费视频 | 欧美一区二区三区电影 | 97久久国产 | 成人毛片一区二区三区 | 久久国产精品91 | 91精品国产综合久久久久久丝袜 | 国产欧美在线视频 | 欧美成人精品 | 成人国产网站 | 国产ts人妖系列高潮 |