Share via


Hinzufügen von Handlern <add>

Übersicht

Das <add>-Element der <handlers>-Sammlung fügt der Liste der HTTP-Handler für Internetinformationsdienste 7 (Internet Information Services, IIS) einen Handler hinzu.

Kompatibilität

Version Hinweise
IIS 10.0 Das <add>-Element wurde in IIS 10.0 nicht geändert.
IIS 8.5 Das <add>-Element wurde in IIS 8.5 nicht geändert.
IIS 8.0 Das <add>-Element wurde in IIS 8.0 nicht geändert.
IIS 7.5 Das <add>-Element wurde in IIS 7.5 nicht geändert.
IIS 7.0 Das <add>-Element der <handlers>-Sammlung wurde in IIS 7.0 eingeführt.
IIS 6.0 N/V

Setup

Das <add>-Element der <handlers>-Sammlung ist in der Standardinstallation von IIS 7 enthalten.

Gewusst wie

Erstellen einer Handlerzuordnung für einen ASP.NET-Handler in einer IIS 7-Anwendung, die im integrierten Modus ausgeführt wird

  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. Klicken Sie im Bereich Verbindungen auf die Serververbindung, der Sie das native Modul hinzufügen möchten.

  3. Doppelklicken Sie im Bereich Start auf Handlerzuordnungen.
    Screenshot of the I I S Manager displaying the Default Web Site Home page. The Handler Mappings icon is highlighted.

  4. Klicken Sie im Bereich Aktionen auf Verwalteten Handler hinzufügen....

  5. Geben Sie im Dialogfeld Verwalteten Handler hinzufügen Folgendes an:

    • Anforderungspfad: Der zuzuordnende Dateiname oder die zuzuordnende Dateinamenerweiterung.

    • Typ: Der Typname (Klasse) des verwalteten Handlers. Wenn der Handler im Ordner „app_code“ oder „bin“ der Anwendung definiert ist, wird sein Typname in der Dropdownliste angezeigt.

    • Name: Ein beschreibender Name.

      Screenshot of the Add Managed Handler dialog box.

  6. Klicken Sie auf OK, um das Dialogfeld Verwalteten Handler hinzufügen zu schließen.

Erstellen einer FastCGI-Handlerzuordnung

  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. Klicken Sie im Bereich Verbindungen auf den Servernamen, für den Sie FastCGI-Handlerzuordnungen konfigurieren möchten.

  3. Doppelklicken Sie im Bereich Start auf Handlerzuordnungen.
    Screenshot of the I I S Manager window displaying the Server home page. The icon for Handler Mappings is highlighted.

  4. Klicken Sie im Bereich Aktionen auf Modulzuordnung hinzufügen....

    Hinweis

    Damit die nächsten Schritte funktionieren, müssen Sie bereits Binärdateien installiert haben, die den von Ihnen angegebenen Dateipfad oder die von Ihnen angegebene Dateinamenerweiterung ausführen. In diesem Beispiel wird eine PHP-Implementierung verwendet, die auf der Microsoft-Website verfügbar ist.

  5. Geben Sie die Dateinamenerweiterung (z. B. „as.php“) in das Feld Anforderungspfad ein, klicken Sie in der Dropdownliste Modul auf FastCGIModule, geben Sie den Pfad zur Skript-Engine (in diesem Beispiel „PHP-CGI.exe“) in das Feld Ausführbare Datei ein, und klicken Sie anschließend auf OK.
    Screenshot of the Add Module Mapping dialog box.

  6. Klicken Sie im Dialogfeld Modulzuordnung hinzufügen auf Ja.
    Screenshot of the Add Module Mapping information dialog box.

Konfiguration

Attribute

Attribut Beschreibung
allowPathInfo Optionales boolesches Attribut.

Gibt an, ob der Handler vollständige Pfadinformationen in einem URI verarbeitet (z. B. „contoso/marketing/imageGallery.aspx“). Bei true verarbeitet der Handler den vollständigen Pfad „contoso/marketing/imageGallery“. Bei false verarbeitet der Handler nur den letzten Abschnitt des Pfads (also „/imageGallery“).

Der Standardwert ist false.
modules Optionales Zeichenfolgeattribut.

Gibt die Namen der Module an, denen Sie den Dateinamen oder den Dateinamen mit der Erweiterung zuordnen möchten. Wenn Sie mehrere Werte angeben möchten, trennen Sie die einzelnen Werte jeweils durch ein Komma (,).

Der Standardwert ist ManagedPipelineHandler.
name Erforderliches Zeichenfolgenattribut.

Gibt den eindeutigen Namen der Handlerzuordnung an.
path Erforderliches Zeichenfolgenattribut.

Gibt den Dateinamen oder die Dateinamenerweiterung an, für den bzw. für die die Handlerzuordnung gilt.
preCondition Optionales Zeichenfolgeattribut.

Gibt Bedingungen an, unter denen der Handler ausgeführt wird.

Das preCondition-Attribut kann einen oder mehrere der folgenden Werte haben. Wenn Sie mehrere Werte angeben möchten, trennen Sie die einzelnen Werte jeweils durch ein Komma (,).
Wert Beschreibung
bitness32 Geben Sie den Wert bitness32 an, wenn es sich bei dem Handler um eine 32-Bit-DLL-Datei handelt und IIS den Handler nur für Arbeitsprozesse laden soll, die im WOW64-Modus (32-Bit-Simulation) auf einem 64-Bit-Betriebssystem ausgeführt werden.
bitness64 Geben Sie den Wert bitness64 an, wenn es sich bei dem Handler um eine 64-Bit-DLL-Datei handelt und IIS den Handler nur für Arbeitsprozesse laden soll, die im 64-Bit-Modus ausgeführt werden.
integratedMode Geben Sie den Wert integratedMode an, wenn das Modul nur auf Anforderungen in Anwendungspools reagieren soll, die für die Verwendung der integrierten Anforderungsverarbeitungspipeline konfiguriert sind.
ISAPIMode Geben Sie den Wert ISAPIMode an, wenn das Modul nur auf Anforderungen in Anwendungspools reagieren soll, die für die Verwendung des klassischen Modus konfiguriert sind.
runtimeVersionv1.1 Geben Sie den Wert runtimeVersionv1.1 an, wenn das Modul nur auf Anforderungen in Anwendungspools reagieren soll, die für die Verwendung der .NET Framework-Version 1.1 konfiguriert sind.
runtimeVersionv2.0 Geben Sie den Wert runtimeVersionv2.0 an, wenn das Modul nur auf Anforderungen in Anwendungspools reagieren soll, die für die Verwendung der .NET Framework-Version 2.0 konfiguriert sind.
requireAccess Optionales enum-Attribut.

Gibt die Art des Zugriffs an, über die ein Handler für die Ressource verfügen muss.

Das requireAccess-Attribut kann einen oder mehrere der folgenden Werte haben. Wenn Sie mehrere Werte angeben möchten, trennen Sie die einzelnen Werte jeweils durch ein Komma (,). Der Standardwert ist Script.
Wert Beschreibung
Ausführen Gibt an, dass der Handler Rechte zum Ausführen von ausführbaren Dateien benötigt.

Der numerische Wert ist 4.
None Gibt an, dass für den Handler keine Zugriffsanforderungen gelten.

Der numerische Wert ist 0.
Lesen Gibt an, dass der Handler Leseberechtigungen benötigt.

Der numerische Wert ist 1.
Skript Gibt an, dass der Handler Rechte zum Ausführen von Skripts benötigt.

Der numerische Wert ist 3.
Schreiben Gibt an, dass der Handler Schreibberechtigungen benötigt.

Der numerische Wert ist 2.
resourceType Optionales Zeichenfolgeattribut.

Gibt die Art der Ressource an, für die die Handlerzuordnung gilt.

Das resourceType-Attribut kann einen der folgenden Werte haben. Der Standardwert ist Unspecified.
Wert Beschreibung
Directory Gibt an, dass die Handlerzuordnung nur für Anforderungen im Zusammenhang mit physischen Ordnern auf dem Datenträger gilt.

Der numerische Wert ist 1.
Either Gibt an, dass die Handlerzuordnung für Anforderungen im Zusammenhang mit physischen Dateien oder Ordnern auf dem Datenträger gilt.

Der numerische Wert ist 2.
File Gibt an, dass die Handlerzuordnung nur für Anforderungen im Zusammenhang mit physischen Dateien auf dem Datenträger gilt.

Der numerische Wert ist 0.
Unspecified Gibt an, dass der Zuordnungstyp nicht angegeben ist. Die Handlerzuordnung gilt unabhängig davon, ob die Anforderung einer physischen Datei oder einem physischen Ordner auf dem Datenträger zugeordnet ist. Verwenden Sie diese Einstellung, wenn Sie einen Handler einem Dateinamen oder einer Dateinamenerweiterung zuordnen, der bzw. die auf dem Datenträger nicht vorhanden ist (z. B. „MyHandler.axd“).

Der numerische Wert ist 3.
responseBufferLimit Optionales uint-Attribut.

Gibt die maximale Größe des Antwortpuffers für einen Anforderungshandler an (in Bytes).

Der Standardwert ist 4194304 Bytes.
scriptProcessor Optionales Zeichenfolgeattribut.

Gibt den physischen Pfad der DLL-Datei der ISAPI-Erweiterung oder der EXE-Datei der gemeinsamen Gatewayschnittstelle (Common Gateway Interface, CGI) an, die die Anforderung verarbeitet.

Das scriptProcessor-Attribut ist nur für Handlerzuordnungen der Skriptzuordnung erforderlich. Wenn Sie einen Handler einer ISAPI-Erweiterung zuordnen, müssen Sie „ISAPIModule“ für das modules-Attribut angeben. Wenn Sie einen Handler einer CGI-Datei zuordnen, müssen Sie „CGIModule“ für das modules-Attribut angeben.
type Optionales Zeichenfolgeattribut.

Gibt den Namespacepfad eines verwalteten Handlers an. Das type-Attribute ist nur für verwaltete Handler erforderlich.
verb Erforderliches Zeichenfolgenattribut.

Gibt die HTTP-Verben an, für die die Handlerzuordnung gilt.

Untergeordnete Elemente

Keine.

Konfigurationsbeispiel

Das folgende Beispiel enthält zwei <add>-Elemente, die Handlerzuordnungen definieren. Das erste <add>-Element definiert einen SampleHandler-Handler für eine Webanwendung, die im integrierten Modus von IIS 7 ausgeführt wird. Wenn Sie die Handlerassembly dem Verzeichnis „app_code“ für die Webanwendung hinzufügen, müssen Sie den Assemblynamen nicht in den Wert für das type-Attribut einschließen. Das zweite <add>-Element definiert eine Zuordnung für PHP-Anforderungen, die das FastCGI-Modul verwenden.

<handlers>
   <add name="SampleHandler" verb="*" 
      path="SampleHandler.new" 
      type="SampleHandler, SampleHandlerAssembly" 
      resourceType="Unspecified" />
   <add name="PHP-FastCGI" verb="*" 
      path="*.php" 
      modules="FastCgiModule"
      scriptProcessor="c:\php\php-cgi.exe" 
      resourceType="Either" />
</handlers>

Beispielcode

In den folgenden Beispielen wird eine FastCGI-Zuordnung für ein PHP-Modul und anschließend ein Handler für die Contoso-Website hinzugefügt, der PHP-Anforderungen verarbeitet.

AppCmd.exe

appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='c:\php\php-cgi.exe']" /commit:apphost

appcmd.exe set config "Contoso" -section:system.webServer/handlers /+"[name='PHP-FastCGI',path='*.php',verb='GET,HEAD,POST',modules='FastCgiModule',scriptProcessor='c:\php\php-cgi.exe',resourceType='Either']"

Hinweis

In diesem zweiten Beispiel wird gezeigt, wie Sie einer Webanwendung eine neue ASP.NET-Handlerzuordnung namens „SampleHandler.new“ für eine bestimmte URL hinzufügen.

appcmd.exe set config /section:system.webServer/handlers /+[name=SampleHandler',path='SampleHandler.new',verb='*',type='SampleHandler']

C#

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

internal static class Sample
{
   private static void Main()
   {
      using (ServerManager serverManager = new ServerManager())
      {
         Configuration appHostConfig = serverManager.GetApplicationHostConfiguration();
         ConfigurationSection fastCgiSection = appHostConfig.GetSection("system.webServer/fastCgi");
         ConfigurationElementCollection fastCgiCollection = fastCgiSection.GetCollection();
         ConfigurationElement applicationElement = fastCgiCollection.CreateElement("application");
         applicationElement["fullPath"] = @"c:\php\php-cgi.exe";
         fastCgiCollection.Add(applicationElement);

         Configuration webConfig = serverManager.GetWebConfiguration("Contoso");
         ConfigurationSection handlersSection = webConfig.GetSection("system.webServer/handlers");
         ConfigurationElementCollection handlersCollection = handlersSection.GetCollection();
         ConfigurationElement addElement = handlersCollection.CreateElement("add");
         addElement["name"] = @"PHP-FastCGI";
         addElement["path"] = @"*.php";
         addElement["verb"] = @"GET,HEAD,POST";
         addElement["modules"] = @"FastCgiModule";
         addElement["scriptProcessor"] = @"c:\php\php-cgi.exe";
         addElement["resourceType"] = @"Either";
         handlersCollection.AddAt(0, addElement);

         serverManager.CommitChanges();
      }
   }
}

VB.NET

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

Module Sample
   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim appHostConfig As Configuration = serverManager.GetApplicationHostConfiguration
      Dim fastCgiSection As ConfigurationSection = appHostConfig.GetSection("system.webServer/fastCgi")
      Dim fastCgiCollection As ConfigurationElementCollection = fastCgiSection.GetCollection
      Dim applicationElement As ConfigurationElement = fastCgiCollection.CreateElement("application")
      applicationElement("fullPath") = "c:\php\php-cgi.exe"
      fastCgiCollection.Add(applicationElement)

      Dim webConfig As Configuration = serverManager.GetWebConfiguration("Contoso")
      Dim handlersSection As ConfigurationSection = webConfig.GetSection("system.webServer/handlers")
      Dim handlersCollection As ConfigurationElementCollection = handlersSection.GetCollection
      Dim addElement As ConfigurationElement = handlersCollection.CreateElement("add")
      addElement("name") = "PHP-FastCGI"
      addElement("path") = "*.php"
      addElement("verb") = "GET,HEAD,POST"
      addElement("modules") = "FastCgiModule"
      addElement("scriptProcessor") = "c:\php\php-cgi.exe"
      addElement("resourceType") = "Either"
      handlersCollection.AddAt(0, addElement)

      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');

adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var fastCgiSection = adminManager.GetAdminSection("system.webServer/fastCgi", "MACHINE/WEBROOT/APPHOST");
var fastCgiCollection = fastCgiSection.Collection;
var applicationElement = fastCgiCollection.CreateNewElement("application");
applicationElement.Properties.Item("fullPath").Value = "c:\\php\\php-cgi.exe";
fastCgiCollection.AddElement(applicationElement);
adminManager.CommitChanges();

adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Contoso";
var handlersSection = adminManager.GetAdminSection("system.webServer/handlers", "MACHINE/WEBROOT/APPHOST/Contoso");
var handlersCollection = handlersSection.Collection;
var addElement = handlersCollection.CreateNewElement("add");
addElement.Properties.Item("name").Value = "PHP-FastCGI";
addElement.Properties.Item("path").Value = "*.php";
addElement.Properties.Item("verb").Value = "GET,HEAD,POST";
addElement.Properties.Item("modules").Value = "FastCgiModule";
addElement.Properties.Item("scriptProcessor").Value = "c:\\php\\php-cgi.exe";
addElement.Properties.Item("resourceType").Value = "Either";
handlersCollection.AddElement(addElement, 0);
adminManager.CommitChanges();

VBScript

Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")

adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set fastCgiSection = adminManager.GetAdminSection("system.webServer/fastCgi", "MACHINE/WEBROOT/APPHOST")
Set fastCgiCollection = fastCgiSection.Collection
Set applicationElement = fastCgiCollection.CreateNewElement("application")
applicationElement.Properties.Item("fullPath").Value = "c:\php\php-cgi.exe"
fastCgiCollection.AddElement applicationElement
adminManager.CommitChanges()

adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Contoso"
Set handlersSection = adminManager.GetAdminSection("system.webServer/handlers", "MACHINE/WEBROOT/APPHOST/Contoso")
Set handlersCollection = handlersSection.Collection
Set addElement = handlersCollection.CreateNewElement("add")
addElement.Properties.Item("name").Value = "PHP-FastCGI"
addElement.Properties.Item("path").Value = "*.php"
addElement.Properties.Item("verb").Value = "GET,HEAD,POST"
addElement.Properties.Item("modules").Value = "FastCgiModule"
addElement.Properties.Item("scriptProcessor").Value = "c:\php\php-cgi.exe"
addElement.Properties.Item("resourceType").Value = "Either"
handlersCollection.AddElement addElement, 0
adminManager.CommitChanges()