共用方式為


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 處理常式

  1. 編譯 HTTP 處理常式類別,並將產生的組件複製到應用程式根資料夾下的 Bin 資料夾。

    -或-

    將處理常式的原始程式碼放在應用程式的 App_Code 資料夾中。

    如需 HTTP 處理常式的範例,請參閱逐步解說:建立同步的 HTTP 處理常式

  2. 在應用程式的 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>
    
  3. 設定 IIS 將自訂副檔名的要求轉送至 ASP.NET。

    如需詳細資訊,請參閱 HOW TO:在 IIS 中設定 HTTP 處理常式副檔名

為以傳統模式執行的 IIS 7.0 註冊 HTTP 處理常式

  1. 編譯 HTTP 處理常式類別,並將產生的組件複製到應用程式根資料夾下的 Bin 資料夾。

    -或-

    將處理常式的原始程式碼放在應用程式的 App_Code 資料夾中。

    如需 HTTP 處理常式的範例,請參閱逐步解說:建立同步的 HTTP 處理常式

  2. 在應用程式的 Web.config 檔案中,建立 httpHandlers 區段。

  3. configuration 項目內建立 system.webServer 區段。

  4. 在 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 處理常式

  1. 編譯 HTTP 處理常式類別,並將產生的組件複製到應用程式根資料夾下的 Bin 資料夾。

    -或-

    將處理常式的原始程式碼放在應用程式的 App_Code 資料夾中。

    如需 HTTP 處理常式的範例,請參閱逐步解說:建立同步的 HTTP 處理常式

  2. 在應用程式的 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 處理常式副檔名

請參閱

工作

HOW TO:在 IIS 中設定 HTTP 處理常式副檔名

HOW TO:建立非同步的 HTTP 處理常式

逐步解說:建立同步的 HTTP 處理常式

概念

IIS 5.0 和 6.0 的 ASP.NET 應用程式生命週期概觀

IIS 7.0 的 ASP.NET 應用程式生命週期概觀