HOW TO:登錄 HTTP 處理常式
更新:2007 年 11 月
在建立自訂 HTTP 處理常式類別 (Class) 之後,您必須在 Web.config 檔中加以註冊。如此可讓 ASP.NET 呼叫這個 HTTP 處理常式處理資源要求,該資源具有指定的副檔名。
註冊 HTTP 處理常式的方式,取決於裝載應用程式的網際網路資訊服務 (IIS) 版本。若為 IIS 6.0,請使用 Web.config 檔案的 httpHandlers 區段註冊處理常式。若為以傳統模式執行的 IIS 7.0,請在 httpHandlers 區段中註冊處理常式,並將處理常式對應至 Aspnet_isapi.dll 檔案。若為以 Integrated 模式執行的 IIS 7.0,請使用 system.WebServer 區段中的 handlers 項目註冊處理常式。
為 IIS 6.0 註冊 HTTP 處理常式
編譯 HTTP 處理常式類別,並將產生的組件複製到應用程式根資料夾下的 Bin 資料夾。
-或-
將處理常式的原始程式碼放在應用程式的 App_Code 資料夾中。
如需 HTTP 處理常式的範例,請參閱逐步解說:建立同步的 HTTP 處理常式。
在應用程式的 Web.config 檔案中,建立 httpHandlers 區段。
下列範例顯示如何註冊 HTTP 處理常式,該處理常式會回應 SampleHandler.new 資源的要求。處理常式在組件 SampleHandlerAssembly 中定義為類別 SampleHandler。
<configuration> <system.web> <httpHandlers> <add verb="*" path="SampleHandler.new" type="SampleHandler, SampleHandlerAssembly" /> </httpHandlers> <system.web> </configuration>
下列範例將副檔名為 ".SampleFileExtension" 的檔案的所有 HTTP 要求,對應至 SampleHandler2 類別。在這種情況下,處理常式程式碼位於 App_Code 資料夾中,所以您無需指定組件。
<configuration> <system.web> <httpHandlers> <add verb="*" path="*.SampleFileExtension" type="SampleHandler2 " /> </httpHandlers> <system.web> </configuration>
設定 IIS 將自訂副檔名的要求轉送至 ASP.NET。
如需詳細資訊,請參閱 HOW TO:在 IIS 中設定 HTTP 處理常式副檔名。
為以傳統模式執行的 IIS 7.0 註冊 HTTP 處理常式
編譯 HTTP 處理常式類別,並將產生的組件複製到應用程式根資料夾下的 Bin 資料夾。
-或-
將處理常式的原始程式碼放在應用程式的 App_Code 資料夾中。
如需 HTTP 處理常式的範例,請參閱逐步解說:建立同步的 HTTP 處理常式。
在應用程式的 Web.config 檔案中,建立 httpHandlers 區段。
在 configuration 項目內建立 system.webServer 區段。
在 system.WebServer 區段內建立 handlers 項目。
注意事項: 您必須同時定義 httpHandlers 項目和 handlers 項目。
下列範例顯示如何註冊 HTTP 處理常式,該處理常式會回應 SampleHandler.new 資源的要求。處理常式在組件 SampleHandlerAssembly 中定義為類別 SampleHandler。
<configuration> <system.web> <httpHandlers> <add verb="*" path="SampleHandler.new" type="SampleHandler, SampleHandlerAssembly" /> </httpHandlers> <system.web> <system.webServer> <add name=SampleHandler" verb="*" path="SampleHandler.new" Modules="IsapiModule" scriptProcessor="FrameworkPath\aspnet_isapi.dll" resourceType="File" /> </system.webServer> </configuration>
使用 Aspnet_isapi.dll 檔案的正確路徑取代 FrameworkPath。
下列範例將副檔名為 ".SampleFileExtension" 的檔案的所有 HTTP 要求,對應至 SampleHandler2 類別。在這種情況下,處理常式程式碼位於 App_Code 資料夾中,所以您無需指定組件。
<configuration> <system.web> <httpHandlers> <add verb="*" path="*.SampleFileExtension" type="SampleHandler2" /> </httpHandlers> <system.web> <system.webServer> <add name=SampleHandler2" verb="*" path="*.SampleFileExtension" Modules="IsapiModule" scriptProcessor="FrameworkPath\aspnet_isapi.dll" resourceType="File" /> </system.webServer> </configuration>
使用 Aspnet_isapi.dll 檔案的正確路徑取代 FrameworkPath。
注意事項: 若為以傳統模式執行的 IIS 7.0,您不需要像 IIS 6.0 一樣另外使用 IIS 管理員將副檔名對應至 Aspnet_isapi.dll 檔案。您可以在 Web.config 檔案中對應副檔名。
為以 Integrated 模式執行的 IIS 7.0 註冊 HTTP 處理常式
編譯 HTTP 處理常式類別,並將產生的組件複製到應用程式根資料夾下的 Bin 資料夾。
-或-
將處理常式的原始程式碼放在應用程式的 App_Code 資料夾中。
如需 HTTP 處理常式的範例,請參閱逐步解說:建立同步的 HTTP 處理常式。
在應用程式的 Web.config 檔案中,在 system.webServer 區段中建立 handlers 項目。
注意事項: 不會用到 httpHandlers 項目中定義的處理常式。如果未移除 httpHandlers 註冊,您必須將 validation 項目的 validateIntegratedModeConfiguration 屬性設定為 false,以免發生錯誤。validation 項目是 system.webServer 項目的子項目。如需詳細資訊,請參閱 ASP.NET 與 IIS 7.0 的整合 中的<停用移轉錯誤訊息>(英文)。
下列範例顯示如何註冊 HTTP 處理常式,該處理常式會回應 SampleHandler.new 資源的要求。處理常式在組件 SampleHandlerAssembly 中定義為類別 SampleHandler。
<configuration> <system.webServer> <handlers> <add name="SampleHandler" verb="*" path="SampleHandler.new" type="SampleHandler, SampleHandlerAssembly" resourceType="Unspecified" /> </handlers> <system.webServer> </configuration>
注意事項: resourceType 屬性與 IIS 6.0 的 IIS 管理員中的 [確認檔案存在] 選項有相同的功能。
下列範例顯示如何將副檔名為 ".SampleFileExtension" 的檔案的所有 HTTP 要求,對應至 SampleHandler2 HTTP 處理常式類別。在這種情況下,處理常式程式碼位於 App_Code 資料夾中,所以您無需指定組件。
<configuration> <system.webServer> <handlers> <add name="SampleHandler2" verb="*" path="*.SampleFileExtension" type="SampleHandler2" /> resourceType="Unspecified" /> <handlers> <system.webServer> </configuration>
若為以 Integrated 模式執行的 IIS 7.0,只需要在 handlers 項目中註冊。
如需 IIS web.webServer 組態項目的詳細資訊,請參閱 MSDN 網站上的 system.webServer 區段群組 (IIS 設定結構描述) (英文)。
如需如何為自訂副檔名設定處理常式的詳細資訊,請參閱 HOW TO:在 IIS 中設定 HTTP 處理常式副檔名。