Share via


Como: Registrar manipuladores HTTP

Depois de criar uma classe manipulador HTTP personalizada, você deve registrá-la no arquivo Web.config.Isso permite que o ASP.NET chame o manipulador HTTP para solicitações de serviço para recursos que têm a extensão de nome de arquivo especificada.

Como você registra um manipulador HTTP depende da versão de Serviços de Informações da Internet (IIS) que hospeda o aplicativo.Para o IIS 6.0, você registra o manipulador usando a seção httpHandlers do arquivo Web.config.Para o IIS 7.0 sendo executado no modo Clássico, você registra o manipulador na seção httpHandlers, e você mapeia o manipulador para o arquivo aspnet_isapi.dll.Para o IIS 7.0 executando no modo Integrado, você registra o manipulador usando o elemento handlers na seção system.WebServer.

Para registrar um manipulador HTTP no IIS 6.0

  1. Compile a classe manipulador HTTP e copie o conjunto resultante para a pasta Bin na pasta raiz do aplicativo.

    - ou -

    Coloque o código-fonte para o manipulador na pasta App_Code do aplicativo.

    Para um exemplo de uma implementação, consulte Passo-a-Passo: Criando um Manipulador HTTP Síncrono.

  2. No arquivo Web.config do aplicativo, crie uma seção httpHandlers.

    O exemplo a seguir mostra como registrar um manipulador HTTP que responde às solicitações para o SampleHandler. new resource.O manipulador é definido como a classe SampleHandler no conjunto de módulos (assembly) SampleHandlerAssembly.

    <configuration>
      <system.web>
        <httpHandlers>
          <add verb="*" path="SampleHandler.new" 
            type="SampleHandler, SampleHandlerAssembly" />
        </httpHandlers>
      <system.web>
    </configuration>
    

    O exemplo a seguir mapeia todas as solicitações HTTP de arquivos que possuem a extensão de nome de arquivo ".SampleFileExtension" para a classe SampleHandler2.Nesse caso, o código do manipulador está na pasta App_Code, portanto você não precisa especificar um assembly.

    <configuration>
      <system.web>
        <httpHandlers>
          <add verb="*" path="*.SampleFileExtension" 
             type="SampleHandler2 " />
        </httpHandlers>
      <system.web>
    </configuration>
    
  3. Configurar o IIS para encaminhar a solicitação para o extensão de nome de arquivo personalizado para o ASP.NET.

    Para obter mais informações, consulte Como: Configurar uma extensão de manipulador HTTP no IIS.

Para registrar um manipulador HTTP para IIS 7.0 executando no modo Clássico

  1. Compile a classe manipulador HTTP e copie o conjunto resultante para a pasta Bin na pasta raiz do aplicativo.

    - ou -

    Coloque o código-fonte para o manipulador na pasta App_Code do aplicativo.

    Para um exemplo de uma implementação, consulte Passo-a-Passo: Criando um Manipulador HTTP Síncrono.

  2. No arquivo Web.config do aplicativo, crie uma seção httpHandlers.

  3. Crie uma seção system.webServer dentro do elemento configuração.

  4. Crie um elemento handlers dentro da seção system.WebServer.

    Observação:

    Você deve definir um elemento httpHandlers e um elemento handlers.

    O exemplo a seguir mostra como registrar um manipulador HTTP que responde às solicitações para o SampleHandler. new resource.O manipulador é definido como a classe SampleHandler no conjunto de módulos (assembly) SampleHandlerAssembly.

    <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>
    

    Substitua FrameworkPath pelo caminho correto para o arquivo Aspnet_isapi.dll.

    O exemplo a seguir mapeia todas as solicitações HTTP de arquivos que possuem a extensão de nome de arquivo ".SampleFileExtension" para a classe SampleHandler2.Nesse caso, o código do manipulador está na pasta App_Code, portanto você não precisa especificar um assembly.

    <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>
    

    Substitua FrameworkPath pelo caminho correto para o arquivo Aspnet_isapi.dll.

    Observação:

    Para o IIS 7.0 executando no modo clássico, você não é necessário usar separadamente o gerenciador do IIS para mapear a extensão de nome de arquivo para o arquivo Aspnet_isapi.dll, como você faria com o IIS 6.0.Você pode mapear a extensão no arquivo Web.config.

Para registrar um manipulador HTTP para IIS 7.0 em execução no Modo Integrado

  1. Compile a classe manipulador HTTP e copie o conjunto resultante para a pasta Bin na pasta raiz do aplicativo.

    - ou -

    Coloque o código-fonte para o manipulador na pasta App_Code do aplicativo.

    Para um exemplo de uma implementação, consulte Passo-a-Passo: Criando um Manipulador HTTP Síncrono.

  2. No arquivo Web.config do aplicativo, crie um elemento handlers na seção system.webServer.

    Observação:

    Manipuladores que estão definidos no elemento httpHandlers não são usados.Se você não remover os registros httpHandlers, você deverá definir o elemento validation do atributo validateIntegratedModeConfiguration para false para evitar erros.Um elemento validation é um filho do elemento system.webServer.Para obter mais informações, consulte "Desativar a mensagem de erro de migração" emIntegração do ASP.NET com o IIS 7.0.

    O exemplo a seguir mostra como registrar um manipulador HTTP que responde às solicitações para o SampleHandler. new resource.O manipulador é definido como a classe SampleHandler no conjunto de módulos (assembly) SampleHandlerAssembly.

    <configuration>
      <system.webServer>
        <handlers>
          <add name="SampleHandler" verb="*" 
            path="SampleHandler.new" 
            type="SampleHandler, SampleHandlerAssembly" 
            resourceType="Unspecified" />
        </handlers>
      <system.webServer>
    </configuration>
    
    Observação:

    O atributo resourceType executa a mesma função que a opção Verificar que o arquivo existe no gerenciador do IIS para o IIS 6.0.

    O exemplo a seguir mostra como mapear todas as solicitações HTTP para arquivos com a extensão de nome de arquivo ".SampleFileExtension" para a classe de manipulador HTTP SampleHandler2.Nesse caso, o código do manipulador está na pasta App_Code, portanto você não precisa especificar um assembly.

    <configuration>
      <system.webServer>
        <handlers>
          <add name="SampleHandler2" verb="*"
            path="*.SampleFileExtension" 
            type="SampleHandler2" />
            resourceType="Unspecified" />
        <handlers>
      <system.webServer>
    </configuration>
    

    Para o IIS 7.0 executando no modo Integrado, somente o registro no elemento handlers é necessário.

    Para obter mais informações sobre o IIS web.webServer elemento de configuração, consulte sistema.webServer agrupar de seções (esquema de configurações do IIS) no site do MSDN.

    Para obter mais informações sobre como configurar um manipulador para uma extensão de nome de arquivo personalizada, consulte Como: Configurar uma extensão de manipulador HTTP no IIS.

Consulte também

Tarefas

Como: Configurar uma extensão de manipulador HTTP no IIS

Demonstra Passo a passo: Criar um manipulador HTTP assíncrono

Passo-a-Passo: Criando um Manipulador HTTP Síncrono

Conceitos

Ciclo de Vida do Aplicativo ASP.NET uma visão geral para o IIS 5.0 e 6.0

Uma visão geral do Ciclo de Vida do Aplicativo ASP.NET para o IIS 7.0