Filtros ISAPI <isapiFilters>

Visão geral

O elemento <isapiFilters> permite que você gerencie filtros ISAPI em seu servidor IIS (Serviços de Informações da Internet) 7. Você pode adicionar um filtro ISAPI quando quiser aprimorar a funcionalidade do servidor Web. Por exemplo, você pode ter um filtro ISAPI que captura informações sobre solicitações HTTP e salva as informações em um banco de dados.

Observação

Embora o IIS 7 dê suporte a filtros ISAPI, a Microsoft recomenda que você estenda a funcionalidade do servidor Web usando módulos em vez de usar filtros ISAPI.

O elemento <isapiFilters> pode conter um ou mais elementos <filter>, cada um dos quais define um filtro ISAPI habilitado para seu servidor ou site. Ele também pode conter um elemento <remove> que você pode usar para remover um filtro ISAPI específico herdado de níveis superiores na hierarquia de configuração. O elemento <isapiFilters> também pode conter um elemento <clear>, que remove todos os filtros ISAPI herdados de níveis superiores na hierarquia de configuração.

Compatibilidade

Versão Observações
IIS 10.0 O elemento <isapiFilters> não foi modificado no IIS 10.0.
IIS 8.5 O elemento <isapiFilters> não foi modificado no IIS 8.5.
IIS 8.0 O elemento <isapiFilters> não foi modificado no IIS 8.0.
IIS 7.5 O elemento <isapiFilters> não foi modificado no IIS 7.5.
IIS 7.0 O elemento <isapiFilters> foi introduzido no IIS 7.0.
IIS 6,0 O elemento <isapiFilters> substitui as propriedades de metabase FilterEnableCache e FilterPath do IIS 6.0.

Instalação

Para usar o elemento <isapiFilters>, você deve instalar o módulo Filtros ISAPI no servidor IIS 7 e posterior. Para fazer isso, execute as etapas a seguir.

Windows Server 2012 R2 ou Windows Server 2012

  1. Na barra de tarefas, clique em Gerenciador do Servidor.
  2. No Gerenciador do Servidor, clique no menu Gerenciar e clique em Adicionar Funções e Recursos.
  3. No assistente Adicionar Funções e Recursos, clique em Avançar. Selecione o tipo de instalação e clique em Avançar. Selecione o servidor de destino e clique em Avançar.
  4. Na página Funções de Servidor, expanda Servidor Web (IIS), Servidor Web, Desenvolvimento do Aplicativo e selecionar Filtros ISAPI. Clique em Avançar.
    Screenshot of I S A P I Filters selected in a Windows Server 2012 Interface. .
  5. Na página Selecionar recursos, clique em Avançar.
  6. Na página Confirmar seleções de instalação, clique em Instalar.
  7. Na página Resultados , clique em Fechar.

Windows 8 ou Windows 8.1

  1. Na tela Iniciar, mova o ponteiro até o canto inferior esquerdo, clique com o botão direito do mouse no botão Iniciar e clique em Painel de Controle.
  2. Em Painel de Controle, clique em Programas e Recursos e clique em Ativar ou desativar recursos do Windows.
  3. Expanda Serviços de Informações da Internet, Serviços da World Wide Web, Recursos de Desenvolvimento de Aplicativos e selecione Filtros ISAPI.
    Screenshot of I S A P I Filters selected in a Windows 8 interface.
  4. Clique em OK.
  5. Clique em Fechar.

Windows Server 2008 R2 ou Windows Server 2008

  1. Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador do Servidor.
  2. No painel de hierarquia do Gerenciador do Servidor, expanda Funções e clique em Servidor Web (IIS).
  3. No painel Servidor Web (IIS), role até a seção Serviços de Função e clique em Adicionar Serviços de Função.
  4. Na página Selecionar Serviços de Função do Assistente para Adicionar Serviços de Função, selecione Filtros ISAPI e clique em Avançar.
    Screenshot of I S A P I Filters selected in a Windows Server 2008 interface.
  5. Na página Confirmar Seleções de Instalação, clique em Instalar.
  6. Na página Resultados , clique em Fechar.

Windows Vista ou Windows 7

  1. Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.
  2. Em Painel de Controle, clique em Programas e Recursos e clique em Ativar ou desativar Recursos do Windows.
  3. Na caixa de diálogo Recursos do Windows, expanda Serviços de Informações da Internet, em seguida, World Wide Web Services e Recursos de Desenvolvimento de Aplicativos.
    Screenshot of I S A P I Filters selected in a Windows Vista or Windows 7 interface.
  4. Selecione Filtros ISAPI e clique em OK.

Instruções

Como adicionar um filtro ISAPI

  1. Abra o Gerenciador dos Serviços de Informações da Internet (IIS):

    • Caso você esteja usando o Windows Server 2012 ou o Windows Server 2012 R2:

      • Na barra de tarefas, clique em Gerenciador do Servidor, em Ferramentas e em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Se você estiver usando o Windows 8 ou Windows 8.1:

      • Mantenha pressionada a tecla Windows, pressione a letra X e clique em Painel de Controle.
      • Clique em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Caso você esteja usando o Windows Server 2008 ou o Windows Server 2008 R2:

      • Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Se você estiver usando o Windows Vista ou Windows 7:

      • Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.
      • Clique duas vezes em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
  2. No painel Conexões, vá para a conexão ou site para o qual você deseja configurar filtros ISAPI.

  3. No painel Página Inicial, clique duas vezes em Filtros ISAPI.
    Screenshot of I S A P I Filters selected in the Default Web Site Home pane.

  4. No painel Ações, clique em Adicionar...

  5. Na caixa de diálogo Filtro caixa de diálogo Adicionar Filtro ISAPI, digite um nome amigável para o filtro ISAPI.

  6. Na caixa Executável, digite o caminho do sistema de arquivos do local do arquivo de filtro ISAPI ou clique nas reticências (...) para navegar até a pasta que contém o arquivo de filtro ISAPI e clique em OK.
    Screenshot of a blank Add I S A P I Filter dialog.

Configuração

Você pode adicionar um filtro ISAPI no nível do servidor e no nível do site. Se você adicionar o filtro ISAPI no nível do servidor, o filtro interceptará todas as solicitações feitas ao servidor. Se você adicionar o filtro ISAPI a um site específico, o filtro interceptará todas as solicitações feitas a esse site.

Você pode configurar o elemento <isapiFilters> no nível do servidor no arquivo ApplicationHost.config ou no nível do site no arquivo Web.config apropriado.

Atributos

Nenhum.

Elementos filho

Elemento Descrição
clear Elemento opcional.

Remove todas as referências a filtros ISAPI da coleção de filtros ISAPI.
filter Elemento opcional.

Adiciona um filtro ISAPI à coleção de filtros ISAPI.
remove Elemento opcional.

Remove uma referência a um filtro ISAPI da coleção de filtros ISAPI.

Exemplo de configuração

O exemplo de configuração a seguir adiciona um filtro ISAPI chamado SalesQueryIsapi a um site ou aplicativo. O exemplo nomeia e habilita o filtro ISAPI com os atributos name e enabled. Ele também usa o atributo enableCache para desabilitar o cache HTTP.sys e o atributo path para especificar o local da DLL ISAPI.

<configuration>
   <system.webServer>
      <isapiFilters>
         <filter 
            name="SalesFilter" 
            enabled="true" 
            enableCache="false" 
            path="C:\Inetpub\filters\SalesFilter.dll" />
      </isapiFilters>
   </system.webServer>
</configuration>

Exemplo de código

Os exemplos a seguir configuram um filtro ISAPI chamado SalesQueryIsapi no servidor. Cada um dos exemplos usa a propriedade name para especificar um nome para o filtro ISAPI, a propriedade enableCache para desabilitar o cache HTTP.sys e a propriedade path para especificar o local da DLL ISAPI.

AppCmd.exe

appcmd.exe set config -section:system.webServer/isapiFilters /+"[name='SalesQueryIsapi',path='c:\Inetpub\www.contoso.com\filters\SalesQueryIsapi.dll',enabled='True',enableCache='True']" /commit:apphost

Observação

Defina o parâmetro commit para apphost quando usar AppCmd.exe para definir essas configurações. Isso confirma as definições de configuração para a seção de local apropriado no arquivo ApplicationHost.config.

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample
{
   private static void Main()
   {
      using (ServerManager serverManager = new ServerManager())
      {
         Configuration config = serverManager.GetApplicationHostConfiguration();
         ConfigurationSection isapiFiltersSection = config.GetSection("system.webServer/isapiFilters");
         ConfigurationElementCollection isapiFiltersCollection = isapiFiltersSection.GetCollection();

         ConfigurationElement filterElement = isapiFiltersCollection.CreateElement("filter");
         filterElement["name"] = @"SalesQueryIsapi";
         filterElement["path"] = @"c:\Inetpub\www.contoso.com\filters\SalesQueryIsapi.dll";
         filterElement["enabled"] = true;
         filterElement["enableCache"] = true;
         isapiFiltersCollection.Add(filterElement);

         serverManager.CommitChanges();
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample
   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetApplicationHostConfiguration
      Dim isapiFiltersSection As ConfigurationSection = config.GetSection("system.webServer/isapiFilters")
      Dim isapiFiltersCollection As ConfigurationElementCollection = isapiFiltersSection.GetCollection
      Dim filterElement As ConfigurationElement = isapiFiltersCollection.CreateElement("filter")
      filterElement("name") = "SalesQueryIsapi"
      filterElement("path") = "c:\Inetpub\www.contoso.com\filters\SalesQueryIsapi.dll"
      filterElement("enabled") = True
      filterElement("enableCache") = True
      isapiFiltersCollection.Add(filterElement)
      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var isapiFiltersSection = adminManager.GetAdminSection("system.webServer/isapiFilters", "MACHINE/WEBROOT/APPHOST");
var isapiFiltersCollection = isapiFiltersSection.Collection;

var filterElement = isapiFiltersCollection.CreateNewElement("filter");
filterElement.Properties.Item("name").Value = "SalesQueryIsapi";
filterElement.Properties.Item("path").Value = "c:\\Inetpub\\www.contoso.com\\filters\\SalesQueryIsapi.dll";
filterElement.Properties.Item("enabled").Value = true;
filterElement.Properties.Item("enableCache").Value = true;
isapiFiltersCollection.AddElement(filterElement);

adminManager.CommitChanges();

VBScript

Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set isapiFiltersSection = adminManager.GetAdminSection("system.webServer/isapiFilters", "MACHINE/WEBROOT/APPHOST")
Set isapiFiltersCollection = isapiFiltersSection.Collection

Set filterElement = isapiFiltersCollection.CreateNewElement("filter")
filterElement.Properties.Item("name").Value = "SalesQueryIsapi"
filterElement.Properties.Item("path").Value = "c:\\Inetpub\\www.contoso.com\\filters\\SalesQueryIsapi.dll"
filterElement.Properties.Item("enabled").Value = True
filterElement.Properties.Item("enableCache").Value = True
isapiFiltersCollection.AddElement filterElement

adminManager.CommitChanges()