日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

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

新聞中心

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

  ASP.NET運(yùn)行時(shí)對(duì)HTTP處理程序的使用方式

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

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

  下面是machine.config文件中的一個(gè)片段:

 
 
 
 
  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> 

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

  執(zhí)行HTTP處理程序

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

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

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

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

  2. 在web.config或machine.config文件中注冊(cè)這個(gè)處理程序。

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

  ***步

  在Visual Studio.NET中建立一個(gè)新的C#類庫項(xiàng)目,并把它命名為“MyHandler”。Visual Studio.NET將自動(dòng)地給項(xiàng)目添加一個(gè)叫做“Class1.cs”的類。把它改名為“NewHandler”;在代碼窗口中打開這個(gè)類,并把類的名稱和構(gòu)造函數(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: 此處添加構(gòu)造邏輯  
  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對(duì)象訪問了所有作為參數(shù)傳遞給它的ASP.NET內(nèi)部對(duì)象。實(shí)現(xiàn)ProcessRequest方法只需要簡單地從context對(duì)象中提取HttpResponse對(duì)象并把發(fā)送一些HTML給客戶端。類似地,IsReusable返回true,表明這個(gè)處理程序可以被重復(fù)用作處理其它的HTTP請(qǐng)求。

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

  第二步

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

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

  第三步

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

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

  點(diǎn)擊確認(rèn)按鈕關(guān)閉應(yīng)用程序配置和默認(rèn)Web站點(diǎn)屬性對(duì)話框。

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

【編輯推薦】

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

網(wǎng)頁題目:ASP.NET的HTTP模塊和處理程序之處理程序的執(zhí)行
鏈接分享:http://www.5511xx.com/article/dpighgh.html