ISAPI-Filter <isapiFilters>

Übersicht

Mit dem <isapiFilters>-Element können Sie ISAPI-Filter auf Ihrem IIS 7-Server (Internet Information Services, Internetinformationsdienste) verwalten. Sie können einen ISAPI-Filter hinzufügen, wenn Sie die Webserverfunktion verbessern möchten. Denkbar wäre beispielsweise ein ISAPI-Filter, der Informationen zu HTTP-Anforderungen erfasst und in einer Datenbank speichert.

Hinweis

IIS 7 unterstützt zwar ISAPI-Filter, Microsoft empfiehlt jedoch, die Webserverfunktion mithilfe von Modulen und nicht mit ISAPI-Filtern zu verbessern.

Das <isapiFilters>-Element kann ein <filter>-Element oder auch mehrere Elemente dieses Typs enthalten. Diese definieren jeweils einen ISAPI-Filter, der für Ihren Server oder Ihre Website aktiviert ist. Darüber hinaus kann es auch ein <remove>-Element enthalten, um einen bestimmten ISAPI-Filter zu entfernen, der von einer höheren Ebene der Konfigurationshierarchie geerbt wurde. Das <isapiFilters>-Element kann es auch ein <clear>-Element enthalten, um alle ISAPI-Filter zu entfernen, die von einer höheren Ebene der Konfigurationshierarchie geerbt wurden.

Kompatibilität

Version Hinweise
IIS 10.0 Das <isapiFilters>-Element wurde in IIS 10.0 nicht geändert.
IIS 8.5 Das <isapiFilters>-Element wurde in IIS 8.5 nicht geändert.
IIS 8.0 Das <isapiFilters>-Element wurde in IIS 8.0 nicht geändert.
IIS 7.5 Das <isapiFilters>-Element wurde in IIS 7.5 nicht geändert.
IIS 7.0 Das <isapiFilters>-Element wurde in IIS 7.0 eingeführt.
IIS 6.0 Das <isapiFilters>-Element ersetzt die Metabasiseigenschaften FilterEnableCache und FilterPath von IIS 6.0.

Setup

Um das <isapiFilters>-Element verwenden zu können, muss das ISAPI-Filtermodul auf Ihrem Server installiert werden, und dieser muss mindestens über IIS 7 verfügen. Führen Sie dazu die folgenden Schritte aus:

Windows Server 2012 oder Windows Server 2012 R2

  1. Klicken Sie auf der Taskleiste auf Server-Manager.
  2. Klicken Sie im Server-Manager auf Verwalten und dann auf Rollen und Features hinzufügen.
  3. Klicken Sie im Assistenten zum Hinzufügen von Rollen und Features auf Weiter. Wählen Sie den Installationstyp aus, und klicken Sie auf Weiter. Wählen Sie den Zielserver aus, und klicken Sie auf Weiter.
  4. - Erweitern Sie auf der Seite Serverrollen die Option Webserver (IIS), erweitern Sie Webserver, erweitern Sie Anwendungsentwicklung, und wählen Sie dann ISAPI-Filter aus. Klicken Sie auf Weiter.
    Screenshot of I S A P I Filters selected in a Windows Server 2012 Interface.
  5. Klicken Sie auf der Seite Features auswählen auf Weiter.
  6. Klicken Sie auf der Seite Installationsauswahl bestätigen auf Installieren.
  7. Klicken Sie auf der Seite Ergebnisse auf Schließen.

Windows 8 oder Windows 8.1

  1. Bewegen Sie auf dem Startbildschirm den Mauszeiger ganz nach links unten, klicken Sie mit der rechten Maustaste auf die Schaltfläche Start, und klicken Sie dann auf Systemsteuerung.
  2. Klicken Sie in der Systemsteuerung auf Programme und Features und dann auf Windows-Features aktivieren oder deaktivieren.
  3. Erweitern Sie Internetinformationsdienste > WWW-Dienste > Anwendungsentwicklungsfeatures, und wählen Sie anschließend ISAPI-Filter aus.
    Screenshot of I S A P I Filters selected in a Windows 8 interface.
  4. Klicken Sie auf OK.
  5. Klicken Sie auf Schließen.

Windows Server 2008 oder Windows Server 2008 R2

  1. Klicken Sie auf der Taskleiste auf Start, zeigen Sie auf Verwaltungstools, und klicken Sie dann auf Server-Manager.
  2. Erweitern Sie im Hierarchiebereich Server-Manager die Option Rollen, und klicken Sie dann auf Webserver (IIS).
  3. Scrollen Sie im Bereich Webserver (IIS) zum Abschnitt Rollendienste, und klicken Sie dann auf Rollendienste hinzufügen.
  4. Wählen Sie auf der Seite Rollendienste auswählen des Assistenten zum Hinzufügen von Rollendiensten die Option ISAPI-Filter aus, und klicken Sie dann auf Weiter.
    Screenshot of I S A P I Filters selected in a Windows Server 2008 interface.
  5. Klicken Sie auf der Seite Installationsauswahl bestätigen auf Installieren.
  6. Klicken Sie auf der Seite Ergebnisse auf Schließen.

Windows Vista oder Windows 7

  1. Klicken Sie auf der Taskleiste auf Start und dann auf Systemsteuerung.
  2. Klicken Sie in der Systemsteuerung auf Programme und Features und dann auf Windows-Features aktivieren oder deaktivieren.
  3. Erweitern Sie im Dialogfeld Windows-Features die Optionen Internetinformationsdienste > WWW-Dienste > Anwendungsentwicklungsfeatures.
    Screenshot of I S A P I Filters selected in a Windows Vista or Windows 7 interface.
  4. Wählen Sie ISAPI-Filter aus, und klicken Sie dann auf OK.

Gewusst wie

Hinzufügen eines ISAPI-Filters

  1. Öffnen Sie Internetinformationsdienste-Manager (IIS-Manager):

    • Vorgehensweise unter Windows Server 2012 oder Windows Server 2012 R2:

      • Klicken Sie auf der Taskleiste auf Server-Manager > Tools > Internetinformationsdienste-Manager (IIS-Manager).
    • Vorgehensweise unter Windows 8 oder Windows 8.1:

      • Halten Sie die WINDOWS-TASTE gedrückt, drücken Sie den Buchstaben X, und klicken Sie dann auf Systemsteuerung.
      • Klicken Sie auf Verwaltung, und doppelklicken Sie dann auf Internetinformationsdienste-Manager (IIS-Manager).
    • Vorgehensweise unter Windows Server 2008 oder Windows Server 2008 R2:

      • Klicken Sie auf der Taskleiste auf Start, zeigen Sie auf Verwaltung, und klicken Sie dann auf Internetinformationsdienste-Manager (IIS-Manager).
    • Vorgehensweise unter Windows Vista oder Windows 7:

      • Klicken Sie auf der Taskleiste auf Start und dann auf Systemsteuerung.
      • Doppelklicken Sie auf Verwaltung, und doppelklicken Sie dann auf Internetinformationsdienste-Manager (IIS-Manager).
  2. Navigieren Sie im Bereich Verbindungen zu der Verbindung oder Site, für die Sie ISAPI-Filter konfigurieren möchten.

  3. Doppelklicken Sie im Bereich Start auf ISAPI-Filter.
    Screenshot of I S A P I Filters selected in the Default Web Site Home pane.

  4. Klicken Sie im Bereich Aktionen auf Hinzufügen....

  5. Geben Sie im Textfeld Filtername des Dialogfelds ISAPI-Filter hinzufügen einen Anzeigenamen für den ISAPI-Filter ein.

  6. Geben Sie im Feld Ausführbare Datei den Dateisystempfad des Speicherorts der ISAPI-Filterdatei ein, oder klicken Sie auf die Auslassungspunkte (...), um zu dem Ordner zu navigieren, der die ISAPI-Filterdatei enthält, und klicken Sie anschließend auf OK.
    Screenshot of a blank Add I S A P I Filter dialog.

Konfiguration

Sie können einen ISAPI-Filter auf der Serverebene und auf der Siteebene hinzufügen. Wenn Sie den ISAPI-Filter auf der Serverebene hinzufügen, fängt der Filter alle an den Server gerichteten Anforderungen ab. Wenn Sie den ISAPI-Filter einer bestimmten Site hinzufügen, fängt der Filter alle an diese Site gerichteten Anforderungen ab.

Das <isapiFilters>-Element kann auf der Serverebene in der Datei „ApplicationHost.config“ oder auf der Siteebene in der entsprechenden Datei vom Typ „Web.config“ konfiguriert werden.

Attribute

Keine

Untergeordnete Elemente

Element Beschreibung
clear Optionales Element.

Entfernt alle Verweise auf ISAPI-Filter aus der ISAPI-Filtersammlung.
filter Optionales Element.

Fügt der ISAPI-Filtersammlung einen ISAPI-Filter hinzu.
remove Optionales Element.

Entfernt einen Verweis auf einen ISAPI-Filter aus der ISAPI-Filtersammlung.

Konfigurationsbeispiel

Im folgenden Konfigurationsbeispiel wird einer Website oder Anwendung ein ISAPI-Filter namens „SalesQueryIsapi“ hinzugefügt. In dem Beispiel wird der ISAPI-Filter mithilfe des name-Attributs benannt und mithilfe des enabled-Attributs aktiviert. Außerdem wird mithilfe des enableCache-Attributs die HTTP.sys-Zwischenspeicherung deaktiviert und mithilfe des path-Attributs der Speicherort der ISAPI-DLL angegeben.

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

Beispielcode

In den folgenden Beispielen wird ein ISAPI-Filter namens „SalesQueryIsapi“ auf dem Server konfiguriert. In den Beispielen wird jeweils mithilfe der name-Eigenschaft ein Name für den ISAPI-Filter angegeben, mithilfe der enableCache-Eigenschaft die HTTP.sys-Zwischenspeicherung deaktiviert und mithilfe der path-Eigenschaft der Speicherort der ISAPI-DLL angegeben.

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

Hinweis

Legen Sie den commit-Parameter auf apphost fest, wenn Sie „AppCmd.exe“ verwenden, um diese Einstellungen zu konfigurieren. Dadurch werden die Konfigurationseinstellungen auf den entsprechenden Speicherortabschnitt in der Datei „ApplicationHost.config“ festgelegt.

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