日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
ASP.NET的HTTP模塊和處理程序之處理程序的執(zhí)行

  ASP.NET運行時對HTTP處理程序的使用方式

唐山網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、APP開發(fā)、響應式網(wǎng)站等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)自2013年創(chuàng)立以來到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設就選創(chuàng)新互聯(lián)。

  無論你是否相信,ASP.NET都使用HTTP請求實現(xiàn)了大量的自己的功能。ASP.NET使用處理程序來處理.aspx、.asmx、.soap和其它ASP.NET文件。

  下面是machine.config文件中的一個片段:

 
 
 
 
  1. <httpHandlers>  
  2. <add verb="*" path="trace.axd" type="System.Web.Handlers.TraceHandler"/>  
  3. <add verb="*" path="*.aspx" type="System.Web.UI.PageHandlerFactory"/>  
  4. <add verb="*" path="*.ashx" type="System.Web.UI.SimpleHandlerFactory"/>  
  5. <add verb="*" path="*.config" type="System.Web.HttpForbiddenHandler"/>  
  6. <add verb="GET,HEAD" path="*" type="System.Web.StaticFileHandler"/>  
  7.  . . . . . .   
  8.  . . . . . .  
  9. </httpHandlers> 

  在上面的配置信息中你可以看到對.aspx文件的所有請求都由System.Web.UI.PageHandlerFactory類來處理。與此類似,對.config文件和其它文件(它們不能被客戶端直接訪問)的所有請求都由System.Web.HttpForbiddenHandler類處理。你可能已經(jīng)猜到,當訪問這些文件的時候,該類簡單地給客戶端返回一個錯誤信息。

  執(zhí)行HTTP處理程序

  現(xiàn)在你將看到如何實現(xiàn)一個HTTP處理程序。那么我們的新處理程序要做什么任務呢?前面我提到,處理程序大多數(shù)用于給Web服務器添加新功能;因此,我將建立一個處理程序來處理新的文件類型——擴展名為.15seconds的文件。我們建立了這個處理程序并在我們的Web應用程序的web.config文件中注冊之后,所有對.15seconds文件的請求都將由這個新處理程序來處理。

  你可能正在考慮這個處理程序的使用方法。如果你希望引入一種新的服務器腳本語言或動態(tài)服務器文件(例如asp、aspx)該怎么辦呢?你可以為它編寫一個自己的處理程序。類似地,如果你希望在IIS上運行Java小程序、JSP和其它一些服務器端Java組件應該怎么辦呢?一種方法是安裝某些ISAPI擴展(例如Allaire或Macromedia Jrun)。你也可以編寫自己的HTTP處理程序。盡管這對于第三方廠商(例如Allaire和Macromedia)來說是很復雜的事務,但是它卻是個很有吸引力的選擇,因為它們的HTTP處理能夠能夠訪問ASP.NET運行時暴露的所有新功能。

  實現(xiàn)我們的HTTP處理程序包含以下步驟:

  1.編寫一個實現(xiàn)IHttpHandler接口的類。

  2. 在web.config或machine.config文件中注冊這個處理程序。

  3.在Internet服務管理器中把文件擴展(.15seconds)映射到ASP.NET ISAPI擴展DLL(aspnet_isapi.dll)上。

  ***步

  在Visual Studio.NET中建立一個新的C#類庫項目,并把它命名為“MyHandler”。Visual Studio.NET將自動地給項目添加一個叫做“Class1.cs”的類。把它改名為“NewHandler”;在代碼窗口中打開這個類,并把類的名稱和構造函數(shù)的名稱改成“NewHandler”。

  下面是NewHandler類的代碼:

 
 
 
 
  1. using System;  
  2. using System.Web;  
  3.  
  4. namespace MyHandler  
  5. {  
  6.  public class NewHandler : IHttpHandler  
  7.  {  
  8.   public NewHandler()  
  9.   {  
  10.    // TODO: 此處添加構造邏輯  
  11.   }  
  12.  
  13.   #region Implementation of IHttpHandler  
  14.   public void ProcessRequest(System.Web.HttpContext context)  
  15.   {  
  16.    HttpResponse objResponse = context.Response ;  
  17.    objResponse.Write("<html><body><h1>Hello 15Seconds Reader ") ;  
  18.    objResponse.Write("</body></html>") ;  
  19.   }  
  20.  
  21.   public bool IsReusable  
  22.   {  
  23.    get  
  24.    {  
  25.     return true;  
  26.    }  
  27.   }  
  28.   #endregion  
  29.  }  

  你在ProcessRequest方法中可以看到,該HTTP處理程序通過System.Web.HttpContext對象訪問了所有作為參數(shù)傳遞給它的ASP.NET內(nèi)部對象。實現(xiàn)ProcessRequest方法只需要簡單地從context對象中提取HttpResponse對象并把發(fā)送一些HTML給客戶端。類似地,IsReusable返回true,表明這個處理程序可以被重復用作處理其它的HTTP請求。

  我們編譯上面的代碼并把它放到webapp虛擬目錄的bin目錄之中。

  第二步

  在web.config文件中通過添加下面的文本來注冊這個處理程序:

 
 
 
 
  1. <httpHandlers>  
  2. <add verb="*" path="*.15seconds" type="MyHandler.NewHandler,MyHandler"/>  
  3. </httpHandlers> 

  第三步

  由于我們已經(jīng)建立了用于處理新擴展文件的處理程序了,我們還需要把這個擴展名告訴IIS并把它映射到ASP.NET。如果你不執(zhí)行這個步驟而試圖訪問Hello.15seconds文件,IIS將簡單地返回該文件而不是把它傳遞給ASP.NET運行時。其結(jié)果是該HTTP處理程序不會被調(diào)用。

  運行Internet服務管理器,右鍵點擊默認Web站點,選擇屬性,移動到Home目錄選項頁,并點擊配置按鈕。應用程序配置對話框彈出來了。點擊添加按鈕并在可執(zhí)行字段輸入aspnet_isapi.dll文件路徑,在擴展字段輸入.15seconds。其它字段不用處理;該對話框如下所示:

  點擊確認按鈕關閉應用程序配置和默認Web站點屬性對話框。

  現(xiàn)在我們運行Internet Explorer并輸入url:http://localhost/webapp/hello.15seconds,看到的頁面如下: 

【編輯推薦】

  1. ASP.NET的HTTP模塊和處理程序
  2. ASP.NET的HTTP模塊和處理程序之請求的處理過程
  3. ASP.NET的HTTP模塊和處理程序之對話狀態(tài)
  4. ASP.NET的HTTP模塊和處理程序之HTTP模塊的注冊和使用
  5. ASP.NET的HTTP模塊和處理程序之模塊實現(xiàn)

分享文章:ASP.NET的HTTP模塊和處理程序之處理程序的執(zhí)行
轉(zhuǎn)載來于:http://www.dlmjj.cn/article/dpighgh.html