Partager via


Filtres ISAPI <isapiFilters>

Vue d’ensemble

L'élément <isapiFilters> vous permet de gérer les filtres ISAPI sur votre serveur IIS (Internet Information Services) 7. Vous pouvez ajouter un filtre ISAPI lorsque vous souhaitez améliorer les fonctionnalités du serveur web. Par exemple, vous pouvez avoir un filtre ISAPI qui capture des informations relatives aux requêtes HTTP et les enregistre dans une base de données.

Remarque

Bien qu'IIS 7 prenne en charge les filtres ISAPI, Microsoft recommande d'étendre les fonctionnalités du serveur web en utilisant des modules plutôt que des filtres ISAPI.

L'élément <isapiFilters> peut contenir un ou plusieurs éléments <filter>, chacun définissant un filtre ISAPI activé pour votre serveur ou site web. Il peut également contenir un élément<remove>, que vous pouvez utiliser pour supprimer un filtre ISAPI spécifique hérité d'un niveau supérieur dans la hiérarchie de configuration. L'élément <isapiFilters> peut également contenir un élément <clear>, qui supprime tous les filtres ISAPI hérités d'un niveau supérieur dans la hiérarchie de configuration.

Compatibilité

Version Notes
IIS 10.0 L'élément <isapiFilters> n'a pas été modifié dans IIS 10.0.
IIS 8.5 L'élément <isapiFilters> n'a pas été modifié dans IIS 8.5.
IIS 8.0 L'élément <isapiFilters> n'a fait l'objet d'aucune modification dans IIS 8.0.
IIS 7.5 L'élément <isapiFilters> n'a pas été modifié dans IIS 7.5.
IIS 7.0 L'élément <isapiFilters> a été introduit dans IIS 7.0.
IIS 6.0 L'élément <isapiFilters> remplace les propriétés de métabase IIS 6.0 FilterEnableCache et FilterPath.

Programme d’installation

Pour utiliser l'élément <isapiFilters>, vous devez installer le module Filtres ISAPI sur votre serveur IIS 7 et version ultérieure. Pour cela, procédez comme suit.

Windows Server 2012 ou Windows Server 2012 R2

  1. Dans la barre des tâches, cliquez sur Gestionnaire de serveur.
  2. Dans Gestionnaire de serveur, cliquez sur le menu Gérer, puis sur Ajouter des rôles et des fonctionnalités.
  3. Dans l'Assistant Ajout de rôles et de fonctionnalités, cliquez sur Suivant. Sélectionnez le type d'installation, puis cliquez sur Suivant. Sélectionnez le serveur de destination, puis cliquez sur Suivant.
  4. À la page Rôles de serveur, développez Serveur web (IIS), Serveur web, Développement d'applications, puis sélectionnez Filtres ISAPI. Sélectionnez Suivant.
    Screenshot of I S A P I Filters selected in a Windows Server 2012 Interface. .
  5. Dans la page Sélectionner les composants, cliquez sur Suivant.
  6. Dans la page Confirmer les sélections d’installation, cliquez sur Installer.
  7. Dans la page Résultats , cliquez sur Fermer.

Windows 8 ou Windows 8.1

  1. Dans l'écran Démarrer, déplacez le pointeur en bas à gauche, cliquez avec le bouton droit sur le bouton Démarrer, puis cliquez sur Panneau de configuration.
  2. Dans le Panneau de configuration, cliquez sur Programmes et fonctionnalités, puis sur Activer ou désactiver des fonctionnalités Windows.
  3. Développez Internet Information Services, Services World Wide Web, Fonctionnalités de développement d'applications, puis sélectionnez Filtres ISAPI.
    Screenshot of I S A P I Filters selected in a Windows 8 interface.
  4. Cliquez sur OK.
  5. Cliquez sur Fermer.

Windows Server 2008 ou Windows Server 2008 R2

  1. Dans la barre des tâches, cliquez sur Démarrer, pointez le curseur sur Outils d'administration, puis cliquez sur Gestionnaire de serveur.
  2. Dans le volet hiérarchie du Gestionnaire de serveur, développez Rôles, puis cliquez sur Serveur web (IIS).
  3. Dans le volet Serveur web (IIS), faites défiler jusqu'à la section Services de rôle, puis cliquez sur Ajouter des services de rôle.
  4. À la page Sélectionner des services de rôle de l'Assistant Ajouter des services de rôle, sélectionnez Filtres ISAPI, puis cliquez sur Suivant.
    Screenshot of I S A P I Filters selected in a Windows Server 2008 interface.
  5. Dans la page Confirmer les sélections pour l'installation, cliquez sur Installer.
  6. Dans la page Résultats , cliquez sur Fermer.

Windows Vista ou Windows 7

  1. Dans la barre des tâches, cliquez sur Démarrer, puis sur Panneau de configuration.
  2. Dans le Panneau de configuration, cliquez sur Programmes et fonctionnalités, puis sur Activer ou désactiver des fonctionnalités Windows.
  3. Dans la boîte de dialogue Fonctionnalités Windows, développez Internet Information Services, puis Services World Wide Web, puis Fonctionnalités de développement d'applications.
    Screenshot of I S A P I Filters selected in a Windows Vista or Windows 7 interface.
  4. Sélectionnez Filtres ISAPI, puis cliquez sur OK.

Procédure

Comment ajouter un filtre ISAPI

  1. Ouvrez le Gestionnaire Internet Information Services (IIS) :

    • Si vous utilisez Windows Server 2012 ou Windows Server 2012 R2 :

      • Dans la barre des tâches, cliquez sur Gestionnaire de serveur, cliquez sur Outils, puis sur Gestionnaire Internet Information Services (IIS).
    • Si vous utilisez Windows 8 ou Windows 8.1 :

      • Maintenez la touche Windows enfoncée, appuyez sur la lettre X, puis cliquez sur Panneau de configuration.
      • Cliquez sur Outils d'administration, puis double-cliquez sur Gestionnaire des services Internet (IIS).
    • Si vous utilisez Windows Server 2008 ou Windows Server 2008 R2 :

      • Cliquez sur Démarrer, placez le curseur sur Outils d'administration, puis cliquez sur Gestionnaire Internet Information Services (IIS).
    • Si vous utilisez Windows Vista ou Windows 7 :

      • Dans la barre des tâches, cliquez sur Démarrer, puis sur Panneau de configuration.
      • Double-cliquez sur Outils d'administration, puis double-cliquez sur Gestionnaire Internet Information Services (IIS).
  2. Dans le volet Connexions, accédez à la connexion ou au site pour lequel vous souhaitez configurer des filtres ISAPI.

  3. Dans le volet Accueil, double-cliquez sur Filtres ISAPI.
    Screenshot of I S A P I Filters selected in the Default Web Site Home pane.

  4. Dans le volet Actions, cliquer sur Ajouter...

  5. Dans la zone de texte Nom du filtre de la boîte de dialogue Ajouter un filtre ISAPI, tapez un nom convivial pour le filtre ISAPI.

  6. Dans la zone Exécutable, saisissez le chemin d'accès au système de fichiers de l'emplacement du fichier de filtre ISAPI ou cliquez sur les points de suspension (...) pour naviguer jusqu'au dossier qui contient le fichier de filtre ISAPI, puis cliquez sur OK.
    Screenshot of a blank Add I S A P I Filter dialog.

Configuration

Vous pouvez ajouter un filtre ISAPI au niveau du serveur et au niveau du site. Si vous ajoutez le filtre ISAPI au niveau du serveur, le filtre intercepte toutes les requêtes adressées au serveur. Si vous ajoutez le filtre ISAPI à un site spécifique, le filtre intercepte toutes les requêtes adressées à ce site.

Vous pouvez configurer l'élément <isapiFilters> au niveau du serveur dans le fichier ApplicationHost.config ou au niveau du site, dans le fichier Web.config approprié.

Attributs

Aucune.

Éléments enfants

Élément Description
clear Élément facultatif.

Supprime toutes les références aux filtres ISAPI de la collection de filtres ISAPI.
filter Élément facultatif.

Ajoute un filtre ISAPI à la collection de filtres ISAPI.
remove Élément facultatif.

Supprime une référence à un filtre ISAPI de la collection de filtres ISAPI.

Exemple Configuration

L'exemple de configuration suivant ajoute un filtre ISAPI nommé SalesQueryIsapi à un site web ou à une application. L'exemple nomme et active le filtre ISAPI avec les attributs nom et activé. Il utilise également l'attribut enableCache pour désactiver la mise en cache de HTTP.sys et l'attribut chemin d'accès pour spécifier l'emplacement de la DLL ISAPI.

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

Exemple de code

Les exemples suivants configurent un filtre ISAPI nommé SalesQueryIsapi sur le serveur. Chacun des exemples utilise la propriété nom pour spécifier un nom pour le filtre ISAPI, la propriété enableCache pour désactiver la mise en cache HTTP.sys et la propriété chemin d'accès pour spécifier l'emplacement de la 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

Remarque

Vous devez veiller à définir le paramètre commit sur apphost quand vous utilisez AppCmd.exe pour configurer ces paramètres. Cela valide les paramètres de configuration dans la section d'emplacement appropriée dans le fichier 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()