文章編號: 307997 - 上次校閱: 2001年11月2日 - 版次: 1.0

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

系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。
本文曾發行於 CHT307997

在此頁中

全部展開 | 全部摺疊

結論

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

實作處理常式

  1. 開啟 Microsoft Visual Studio .NET,在 Visual Basic .NET 中建立一個名為 MyHandler 的新「類別庫」(Class Library)。
  2. 設定 System.Web.dll 組件參考。
  3. 加入下列程式碼,匯入 System.Web 命名空間 (Namespace):
    Imports System.Web
  4. 將這個類別重新命名為 SyncHandler.cs,然後變更類別定義,反映這項改變。
  5. 實作 IHttpHandler 介面。您的類別定義看起來應該像是這樣:
    Public Class SyncHandler
       Implements IHttpHandler
  6. 實作 IHttpHandler 介面的 IsReusable 屬性和 ProcessRequest 方法。因為這是個同步處理常式,所以會對 IsReusable 屬性傳回 False ,使處理常式不會被共用。
    Public ReadOnly Property IsReusable() As Boolean _
    Implements IHttpHandler.IsReusable
       Get
          Return False
       End Get
    End Property
    
    Public Sub ProcessRequest(ByVal context As HttpContext) _
    Implements IHttpHandler.ProcessRequest
       context.Response.Write("Hello from custom handler.")
    End Sub
  7. 編譯專案。

部署處理常式

  1. 在 C:\Inetpub\Wwwroot 目錄之下建立一個名為 Handler 的新目錄。
  2. 在剛建立的 Handler 目錄中建立一個名為 Bin 的子目錄。所產生的路徑為 C:\Inetpub\Wwwroot\Handler\Bin。
  3. 從專案的 Bin 目錄將 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? (http://support.microsoft.com/kb/307985/EN-US/ ) BETA-INFO: ASP.NET HTTP Modules and HTTP Handlers Overview


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

http://support.microsoft.com/support/kb/articles/Q307/9/97.asp (http://support.microsoft.com/kb/307997/en-us?ln=en-us&sd=gn&fr=0)

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