您好,登錄后才能下訂單哦!
這篇文章主要介紹“ASP.NET處理程序的執行方法是什么”,在日常操作中,相信很多人在ASP.NET處理程序的執行方法是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”ASP.NET處理程序的執行方法是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
ASP.NET運行時對HTTP處理程序的使用方式
無論你是否相信,ASP.NET都使用HTTP請求實現了大量的自己的功能。ASP.NET使用處理程序來處理.aspx、.asmx、.soap和其它ASP.NET文件。
下面是machine.config文件中的一個片段:
<httpHandlers> <add verb="*" path="trace.axd" type="System.Web.Handlers.TraceHandler"/> <add verb="*" path="*.aspx" type="System.Web.UI.PageHandlerFactory"/> <add verb="*" path="*.ashx" type="System.Web.UI.SimpleHandlerFactory"/> <add verb="*" path="*.config" type="System.Web.HttpForbiddenHandler"/> <add verb="GET,HEAD" path="*" type="System.Web.StaticFileHandler"/> . . . . . . . . . . . . </httpHandlers>
在上面的配置信息中你可以看到對.aspx文件的所有請求都由System.Web.UI.PageHandlerFactory類來處理。與此類似,對.config文件和其它文件(它們不能被客戶端直接訪問)的所有請求都由System.Web.HttpForbiddenHandler類處理。你可能已經猜到,當訪問這些文件的時候,該類簡單地給客戶端返回一個錯誤信息。
執行HTTP處理程序
現在你將看到如何實現一個HTTP處理程序。那么我們的新處理程序要做什么任務呢?前面我提到,處理程序大多數用于給Web服務器添加新功能;因此,我將建立一個處理程序來處理新的文件類型——擴展名為.15seconds的文件。我們建立了這個處理程序并在我們的Web應用程序的web.config文件中注冊之后,所有對.15seconds文件的請求都將由這個新處理程序來處理。
你可能正在考慮這個處理程序的使用方法。如果你希望引入一種新的服務器腳本語言或動態服務器文件(例如asp、aspx)該怎么辦呢?你可以為它編寫一個自己的處理程序。類似地,如果你希望在IIS上運行Java小程序、JSP和其它一些服務器端Java組件應該怎么辦呢?一種方法是安裝某些ISAPI擴展(例如Allaire或Macromedia Jrun)。你也可以編寫自己的HTTP處理程序。盡管這對于第三方廠商(例如Allaire和Macromedia)來說是很復雜的事務,但是它卻是個很有吸引力的選擇,因為它們的HTTP處理能夠能夠訪問ASP.NET運行時暴露的所有新功能。
實現我們的HTTP處理程序包含以下步驟:
1.編寫一個實現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”;在代碼窗口中打開這個類,并把類的名稱和構造函數的名稱改成“NewHandler”。
下面是NewHandler類的代碼:
using System; using System.Web; namespace MyHandler { public class NewHandler : IHttpHandler { public NewHandler() { // TODO: 此處添加構造邏輯 } #region Implementation of IHttpHandler public void ProcessRequest(System.Web.HttpContext context) { HttpResponse objResponse = context.Response ; objResponse.Write("<html><body><h2>Hello 15Seconds Reader ") ; objResponse.Write("</body></html>") ; } public bool IsReusable { get { return true; } } #endregion } }
你在ProcessRequest方法中可以看到,該HTTP處理程序通過System.Web.HttpContext對象訪問了所有作為參數傳遞給它的ASP.NET內部對象。實現ProcessRequest方法只需要簡單地從context對象中提取HttpResponse對象并把發送一些HTML給客戶端。類似地,IsReusable返回true,表明這個處理程序可以被重復用作處理其它的HTTP請求。
我們編譯上面的代碼并把它放到webapp虛擬目錄的bin目錄之中。
第二步
在web.config文件中通過添加下面的文本來注冊這個處理程序:
<httpHandlers> <add verb="*" path="*.15seconds" type="MyHandler.NewHandler,MyHandler"/> </httpHandlers>
第三步
由于我們已經建立了用于處理新擴展文件的處理程序了,我們還需要把這個擴展名告訴IIS并把它映射到ASP.NET。如果你不執行這個步驟而試圖訪問Hello.15seconds文件,IIS將簡單地返回該文件而不是把它傳遞給ASP.NET運行時。其結果是該HTTP處理程序不會被調用。
運行Internet服務管理器,右鍵點擊默認Web站點,選擇屬性,移動到Home目錄選項頁,并點擊配置按鈕。應用程序配置對話框彈出來了。點擊添加按鈕并在可執行字段輸入aspnet_isapi.dll文件路徑,在擴展字段輸入.15seconds。其它字段不用處理;該對話框如下所示:
點擊確認按鈕關閉應用程序配置和默認Web站點屬性對話框。
現在我們運行Internet Explorer并輸入url:http://localhost/webapp/hello.15seconds,看到的頁面如下:
到此,關于“ASP.NET處理程序的執行方法是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。