如何:使用 Visual C# .NET 建立 ASP.NET HTTP 處理常式

文章翻譯 文章翻譯
文章編號: 308001 - 檢視此文章適用的產品。
本文曾發行於 CHT308001
全部展開 | 全部摺疊

在此頁中

結論

本文將逐步示範如何使用 Visual C# .NET 建立簡單的自訂 HTTP 處理常式。本文將示範如何建立、部署和設定處理常式。

實作處理常式

  1. 開啟 Microsoft Visual Studio .NET,在 Visual C# .NET 中建立一個名為 MyHandler 的新「 類別庫」(Class Library)。
  2. 設定 System.Web.dll 組件參考。
  3. 將下列指示詞加入到類別:
    using System.Web;
  4. 將這個類別重新命名為 SyncHandler.cs,然後變更類別定義,反映這項改變。
  5. 實作 IHttpHandler 介面。您的類別定義看起來應該像是這樣:
    public class SyncHandler : IHttpHandler
  6. 實作 IHttpHandler 介面的 IsReusable 屬性和 ProcessRequest 方法。因為這是個同步處理常式,所以會對 IsReusable 屬性傳回 False ,使處理常式不會被共用。
    public bool IsReusable
    {
       get {return false;}
    }
    
    public void ProcessRequest(HttpContext context)
    {
       context.Response.Write("Hello from custom handler.");
    }
  7. 編譯專案。

部署處理常式

  1. 在 C:\Inetpub\Wwwroot 目錄之下建立一個名為 Handler 的新目錄。
  2. 在剛建立的 Handler 目錄中建立一個名為 Bin 的子目錄。所產生的路徑為 C:\Inetpub\Wwwroot\Handler\Bin。
  3. 從專案的 Bin\Debug 目錄將 MyHandler.dll 複製到 C:\Inetpub\Wwwroot\Handler\Bin 目錄。
  4. 遵循下列步驟將這個新 Handler 目錄標記為 Web 應用程式:
    1. 開啟「Internet 服務管理員」。
    2. 在 Handler 目錄上按一下滑鼠右鍵,然後再按 [屬性]
    3. [目錄] 索引標籤上按一下 [建立]
  5. 遵循下列步建立處理常式的應用程式對應。對於這個處理常式,建立一個將 *.sync 副檔名對應到 Aspnet_isapi.dll 檔案的對應。只要要求 .sync 檔案時,這個要求就會被傳送到 ASP.NET,而 ASP.NET 就會執行這個處理常式中的程式碼。
    1. 在 Handler Web 應用程式上按一下滑鼠右鍵,然後再按一下 [屬性]
    2. [目錄] 索引標籤上按一下 [組態]
    3. 按一下 [加入] ,加入新的對應。
    4. [可執行檔] 文字方塊中,輸入下列路徑:
      C:\WINNT\Microsoft.NET\Framework\< version# >\Aspnet_isapi.dll
    5. [副檔名] 文字方塊中,輸入 .sync
    6. 請確定 [檢查該檔案是否存在] 核取方塊已取消選取,然後按一下 [確定] ,關閉 [新增/編輯應用程式副檔名對應] 對話方塊。
    7. 按一下 [確定] ,關閉 [應用程式組態] [處理常式屬性] 對話方塊。
  6. 關閉 [Internet 服務管理員]。

設定系統

  1. 在 C:\Inetpub\Wwwroot\Handler 目錄中,建立一個名為 Web.config 的新檔案。
  2. 將下列程式碼加入至 Web.config:
    <configuration>
       <system.web>
          <httpHandlers>
             <add verb="*" path="*.sync" type="MyHandler.SyncHandler, MyHandler" />
          </httpHandlers>
       </system.web>
    </configuration>
    verb="*" 屬性 (Attribute) 中,我們指示處理常式對使用任何動詞命令 (例如 POST、HEAD、GET 等) 的要求進行處理。如果您希望處理常式只處理 POST 要求,請將它變更為 verb="POST"

    path="*.sync" 屬性中,我們指示處理常式對任何對副檔名為 .sync 的檔案的即來要求進行處理。

    type="MyHandler.SyncHander, MyHandler" 屬性中,我們指示處理常式對這個要求進行處理,在 MyHandler.SyncHandler 命名空間中實作,這個類別位在 MyHandler 組件中。

測試模組

若要測試處理常式,網頁並不需要存在於檔案系統中。例如,要求 Handler Web 應用程式中的 Default.sync 檔案 (http://< ComputerName >/Handler/Default.sync)。您應該會收到下列結果:
Hello from custom handler.

參考

如需 HTTP 處理常式的詳細資訊,請按一下下列文件編號,檢視 Microsoft Knowledge Base 中的下列文件:
307985 BETA-INFO: ASP.NET HTTP Modules and HTTP Handlers Overview













本文件是根據 Microsoft Knowledgebase 文件編號 Q308001 翻譯的。若要參考原始英文文件內容,請至以下網址:

http://support.microsoft.com/support/kb/articles/Q308/0/01.asp

屬性

文章編號: 308001 - 上次校閱: 2001年11月2日 - 版次: 1.0
這篇文章中的資訊適用於:
  • Microsoft ASP .NET Beta 2
  • Microsoft Visual C# .NET 2002 Standard Edition
關鍵字:?
kbhowto kbhowtomaster kbhttpruntime kbgrpdsasp KB308001
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com