本文將逐步示範如何使用 Visual Basic .NET 建立簡單的自訂 HTTP 處理常式。本文將示範如何建立、部署和設定處理常式。
實作處理常式
-
開啟 Microsoft Visual Studio .NET,在 Visual Basic .NET 中建立一個名為 MyHandler 的新「類別庫」(Class Library)。
-
設定
System.Web.dll
組件參考。
-
加入下列程式碼,匯入
System.Web
命名空間 (Namespace):
-
將這個類別重新命名為 SyncHandler.cs,然後變更類別定義,反映這項改變。
-
實作
IHttpHandler
介面。您的類別定義看起來應該像是這樣:
Public Class SyncHandler
Implements IHttpHandler
-
實作
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 -
編譯專案。
部署處理常式
-
在 C:\Inetpub\Wwwroot 目錄之下建立一個名為 Handler 的新目錄。
-
在剛建立的 Handler 目錄中建立一個名為 Bin 的子目錄。所產生的路徑為 C:\Inetpub\Wwwroot\Handler\Bin。
-
從專案的 Bin 目錄將 MyHandler.dll 複製到 C:\Inetpub\Wwwroot\Handler\Bin 目錄。
-
遵循下列步驟將這個新 Handler 目錄標記為 Web 應用程式:
-
開啟 [Internet 服務管理員]。
-
在 Handler 目錄上按一下滑鼠右鍵,然後再按一下
[內容]
。
-
在
[目錄]
索引標籤上按一下
[建立]
。
-
遵循下列步建立處理常式的應用程式對應。對於這個處理常式,建立一個將 *.sync 副檔名對應到 Aspnet_isapi.dll 檔案的對應。只要要求 .sync 檔案時,這個要求就會被傳送到 ASP.NET,而 ASP.NET 就會執行這個處理常式中的程式碼。
-
在 Handler Web 應用程式上按一下滑鼠右鍵,然後再按一下
[內容]
。
-
在
[目錄]
索引標籤上按一下
[設定]
。
-
按一下
[新增]
,加入新的對應。
-
在
[執行檔]
文字方塊中,輸入下列路徑:
C:\WINNT\Microsoft.NET\Framework\<
version#
>\Aspnet_isapi.dll
-
在
[副檔名]
文字方塊中,輸入
.sync
。
-
請確定
[檢查該檔案是否存在]
核取方塊已取消選取,然後按一下
[確定]
,關閉
[新增/編輯應用程式副檔名對應]
對話方塊。
-
按一下
[確定]
,關閉
[應用程式設定]
和
[處理常式屬性]
對話方塊。
-
關閉 [Internet 服務管理員]。
設定系統
-
在 C:\Inetpub\Wwwroot\Handler 目錄中,建立一個名為 Web.config 的新檔案。
-
將下列程式碼加入至 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 翻譯的。若要參考原始英文文件內容,請至以下網址: