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

本文曾發行於 CHT308001
本文討論的是 Microsoft 產品的 Beta 版本。本文中的資訊是依現況提供,如有變更恕不另行通知。

對此 Beta 版本產品,Microsoft 還沒有正式的產品支援。如需取得 Beta 版本產品支援的相關資訊,請參閱隨附於 Beta 產品檔案中的文件,或者檢視您下載此版本的 Web 位置。

如需本文的 Microsoft Visual Basic .NET 版本,請參閱 307997

目前工作內容

結論
本文將逐步示範如何使用 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 翻譯的。若要參考原始英文文件內容,請至以下網址:

內容

文章識別碼:308001 - 最後檢閱時間:11/02/2001 13:50:00 - 修訂: 1.0

Microsoft ASP .NET Beta 2, Microsoft Visual C# .NET 2002 Standard Edition

  • kbhowto kbhowtomaster kbhttpruntime kbgrpdsasp KB308001
意見反應