Share via


방법: HTTP 처리기 등록

업데이트: 2007년 11월

사용자 지정 HTTP 처리기 클래스를 만든 후에는 이 클래스를 Web.config 파일에 등록해야 합니다. 그러면 지정한 파일 이름 확장명을 갖는 리소스에 대한 요청을 처리하기 위해 ASP.NET에서 HTTP 처리기를 호출할 수 있습니다.

HTTP 처리기를 등록하는 방법은 응용 프로그램을 호스팅하는 IIS(Internet Information Services) 버전에 따라 달라집니다. IIS 6.0의 경우 Web.config 파일의 httpHandlers 섹션을 사용하여 처리기를 등록합니다. 클래식 모드에서 실행되는 IIS 7.0의 경우 httpHandlers 섹션에 처리기를 등록하여 처리기를 Aspnet_isapi.dll 파일에 매핑합니다. 통합 모드에서 실행되는 IIS 7.0의 경우 system.WebServer 섹션의 handlers 요소를 사용하여 처리기를 등록합니다.

IIS 6.0에 대해 HTTP 처리기를 등록하려면

  1. HTTP 처리기 클래스를 컴파일하고 결과 어셈블리를 응용 프로그램 루트 폴더에 있는 Bin 폴더에 복사합니다.

    - 또는 -

    처리기에 대한 소스 코드를 응용 프로그램의 App_Code 폴더에 넣습니다.

    HTTP 처리기의 예는 연습: 동기 HTTP 처리기 만들기를 참조하십시오.

  2. 응용 프로그램의 Web.config 파일에서 httpHandlers 섹션을 만듭니다.

    다음 예제에서는 SampleHandler.new 리소스에 대한 요청에 응답하는 HTTP 처리기를 등록하는 방법을 보여 줍니다. 이 처리기는 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에 전달합니다.

    자세한 내용은 방법: 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 요소를 둘 다 정의해야 합니다.

    다음 예제에서는 SampleHandler.new 리소스에 대한 요청에 응답하는 HTTP 처리기를 등록하는 방법을 보여 줍니다. 이 처리기는 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>
    

    FrameworkPath를 Aspnet_isapi.dll 파일에 대한 올바른 경로로 바꿉니다.

    다음 예제에서는 파일 이름 확장명이 ".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>
    

    FrameworkPath를 Aspnet_isapi.dll 파일에 대한 올바른 경로로 바꿉니다.

    참고:

    클래식 모드에서 실행되는 IIS 7.0의 경우 IIS 6.0에서처럼 개별적으로 IIS 관리자를 사용하여 파일 이름 확장명을 Aspnet_isapi.dll 파일에 매핑할 필요가 없습니다. Web.config 파일에서 확장명을 매핑할 수 있습니다.

통합 모드에서 실행되는 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 Integration with IIS 7.0의 "Disabling the migration error message"를 참조하십시오.

    다음 예제에서는 SampleHandler.new 리소스에 대한 요청에 응답하는 HTTP 처리기를 등록하는 방법을 보여 줍니다. 이 처리기는 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>
    

    통합 모드에서 실행되는 IIS 7.0의 경우 handlers 요소에서만 등록이 필요합니다.

    IIS web.webServer 구성 요소에 대한 자세한 내용은 MSDN 웹 사이트의 system.webServer Section Group (IIS Settings Schema)을 참조하십시오.

    사용자 지정 파일 이름 확장명에 대해 처리기를 구성하는 방법에 대한 자세한 내용은 방법: IIS에서 HTTP 처리기 확장 구성을 참조하십시오.

참고 항목

작업

방법: IIS에서 HTTP 처리기 확장 구성

방법: 비동기 HTTP 처리기 만들기

연습: 동기 HTTP 처리기 만들기

개념

IIS 5.0 및 6.0의 ASP.NET 응용 프로그램 수명 주기 개요

IIS 7.0의 ASP.NET 응용 프로그램 수명 주기 개요