演練 建立和註冊自定義 HTTP 模組

2021-09-09 01:46:46 字數 2709 閱讀 6524

如果 asp.net 應用程式是在 iis 6.0 下執行,則可以使用 http 模組自定義針對 asp.net 所提供的資源的請求。 這些資源包括 asp.net web 頁(.aspx 檔案)、web 服務(.asmx 檔案)、asp.net 處理程式(.ashx 檔案)和您已經對映到 asp.net 的任何檔案型別。 如果 asp.net 應用程式是在 iis 7.0 下執行,則可以使用 http 模組自定義針對 iis 所提供的任何資源的請求。 這不僅包括 asp.net 資源,還包括 html 檔案(.htm 或 .html 檔案)、圖形檔案等等。有關更多資訊,請參見 iis 5.0 和 6.0 的 asp.net 應用程式生命週期概述和 iis 7.0 的 asp.net 應用程式生命週期概述。

本主題中的示例模組在任何 http 請求的開始階段都向所請求的 asp.net 網頁中新增乙個訊息。 在頁面得到處理之後,它將新增另外乙個訊息。 該模組還包含相應的**,以確保它不會向針對任何其他檔案型別的請求中新增文字。

每個事件處理程式都編寫為該模組的私有方法。 在引發已註冊的事件時,asp.net 將呼叫該模組中適當的處理程式,以便將資訊寫入 asp.net 網頁。

本演練演示以下任務:

前提條件

若要完成本演練,您需要:

本演練還假定您使用的是 iis 6.0 或 iis 7.0。 但是,即使您執行的是 asp.net 開發伺服器,您也可以看到該模組的功能。

建立自定義 http 模組類

首先,您需要建立乙個類檔案以實現該模組。

建立乙個 asp.net **並將它命名為 handler。

可以為**選擇任何名稱。

另外,如果您使用的是 visual studio(而不是 visual web developer 速成版),則可以將 helloworldmodule 建立為乙個類庫專案,對它進行編譯,並將生成的程式集放到 web 應用程式的 bin 目錄中。

將下面的**新增到類檔案中:

儲存並關閉類檔案。

在「生成」選單上單擊「生成**」。

如果**未生成,請更正存在的任何問題。 必須對自定義 http 模組進行編譯,否則無法註冊該模組。

在 iis 6.0 和 iis 7.0 經典模式中註冊 http 模組

建立 helloworldmodule 類之後,可以通過在 web.config 檔案中建立乙個項來註冊該模組。 通過註冊 http 模組,可使其能夠訂閱請求管道通知。

在 iis 7.0 中,應用程式可以在經典模式或整合模式下執行。 在經典模式下,請求的處理方式與在 iis 6.0 中基本相同。 在整合模式下,iis 7.0 使用管道(管道使其可以與 asp.net 共享請求、模組和其他功能)來管理請求。

在 iis 7.0 經典模式和 iis 7.0 整合模式下,註冊模組的過程有所不同。 本節描述與 iis 6.0 和 iis 7.0 經典模式相對應的過程。 下一節將描述用於註冊在 iis 7.0 整合模式下執行的模組的過程。

如果**還沒有 web.config 檔案,請在該站點的根目錄下建立乙個這樣的檔案。

將下面突出顯示的**新增到該 web.config 檔案中:

"

helloworldmodule

" type="

helloworldmodule

"/>

這段**用 helloworldmodule 的類名和模組名註冊該模組。

在 iis7.0 整合模式下註冊 http 模組

在 iis 7.0 整合模式下註冊模組的過程與 iis 7.0 經典模式下的註冊過程稍有不同。

如果**還沒有 web.config 檔案,請在該站點的根目錄下建立乙個這樣的檔案。

將下面突出顯示的**新增到該 web.config 檔案中:

"

helloworldmodule

" type="

helloworldmodule

"/>

您還可以使用 iis 管理器註冊模組。 有關更多資訊,請參見 configuring modules in iis 7.0(在 iis 7.0 中配置模組)。

這段**用 helloworldmodule 的類名和模組名註冊該模組。

測試自定義 http 模組

建立並註冊自定義 http 模組後,可以對它進行測試。

在應用程式中新增乙個新的 asp.net 頁面。

右擊剛新增的頁,選擇「在瀏覽器中檢視」。

http 模組會將乙個字串追加到響應的開頭和末尾。 在對其副檔名已分配給 asp.net 的檔案進行任何請求的過程中,該模組都將自動執行。 有關更多資訊,請參見 http 處理程式和 http 模組概述。

建立和註冊自定義 HTTP 模組

如果 asp.net 應用程式是在 iis 6.0 下執行,則可以使用 http 模組自定義針對 asp.net 所提供的資源的請求。這些資源包括 asp.net web 頁 aspx 檔案 web 服務 asmx 檔案 asp.net 處理程式 ashx 檔案 和您已經對映到 asp.net 的任...

python from import 自定義模組

from douban250.items import douban250item python import 自定義模組 1 主程式與模組程式在同一目錄下 如下面程式結構 src mod1.py test1.py 若在程式test1.py中匯入模組mod1,則直接使用 import mod1或fr...

android自定義控制項的建立和使用

view plaincopy to clipboardprint?01.package com.android.test 02.import android.view.motionevent 03.import android.webkit.webview 04.import android.con...