Partager via


Ajouter des gestionnaires <ajouter>

Vue d’ensemble

L’élément <add> de la collection <handlers> ajoute un gestionnaire à la liste des gestionnaires HTTP pour Internet Information Services (IIS) 7.

Compatibilité

Version Notes
IIS 10.0 L’élément <add> n’a pas été modifié dans IIS 10.0.
IIS 8.5 L’élément <add> n’a pas été modifié dans IIS 8.5.
IIS 8.0 L’élément <add> n’a pas été modifié dans IIS 8.0.
IIS 7.5 L’élément <add> n’a pas été modifié dans IIS 7.5.
IIS 7.0 L’élément <add> de la collection <handlers> a été introduit dans IIS 7.0.
IIS 6.0 S/O

Programme d’installation

L’élément <add> de la collection <handlers> est inclus dans l’installation par défaut IIS 7.

Procédure

Création d’un mappage de gestionnaire pour un gestionnaire de ASP.NET dans une application IIS 7 s’exécutant en mode intégré

  1. Ouvrez le Gestionnaire des services Internet (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 Internet Information Services (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, cliquez sur la connexion du serveur à laquelle vous souhaitez ajouter le module natif.

  3. Dans le volet Accueil, double-cliquez sur Mappages de gestionnaires.
    Screenshot of the I I S Manager displaying the Default Web Site Home page. The Handler Mappings icon is highlighted.

  4. Sur le volet Actions, cliquez sur Ajouter un gestionnaire de module...

  5. Dans la boîte de dialogue Ajouter un gestionnaire managé, spécifiez les éléments suivants :

    • Chemin de requête. Le nom de fichier ou l’extension de nom de fichier à mapper.

    • Type. Le nom du type (classe) du gestionnaire managé. Si le gestionnaire est défini dans les dossiers app_code ou bin de l’application, son nom de type apparaît dans la liste déroulante.

    • Nom. Un nom descriptif.

      Screenshot of the Add Managed Handler dialog box.

  6. Cliquez sur OK pour fermer la boîte de dialogue Ajouter un gestionnaire managé.

Comment créer un mappage de gestionnaire FastCGI

  1. Ouvrez le Gestionnaire des services Internet (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 Internet Information Services (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, cliquez sur le nom du serveur pour lequel vous souhaitez configurer les mappages de gestionnaires FastCGI.

  3. Dans le volet Accueil, double-cliquez sur Mappages de gestionnaires.
    Screenshot of the I I S Manager window displaying the Server home page. The icon for Handler Mappings is highlighted.

  4. Dans le volet Actions, cliquez sur Ajouter un mappage de modules...

    Remarque

    Pour que les prochaines étapes fonctionnent, vous devez avoir déjà installé des fichiers binaires qui exécutent le chemin d’accès du fichier ou l’extension de nom de fichier que vous spécifiez. Cet exemple utilise une implémentation PHP disponible sur le site web Microsoft.

  5. Tapez l’extension de nom de fichier, telle que .php dans la case Chemin d'accès de la requête, cliquez sur FastCGIModule dans la liste déroulante Module, tapez le chemin d’accès au moteur de script (dans cet exemple, PHP-CGI.exe) dans la case Exécutable, puis cliquez sur OK.
    Screenshot of the Add Module Mapping dialog box.

  6. Sur la boîte de dialogue Ajouter un mappage de module, cliquez sur Oui.
    Screenshot of the Add Module Mapping information dialog box.

Configuration

Attributs

Attribut Description
allowPathInfo Attribut booléen facultatif.

Spécifie si le gestionnaire traite les informations de chemin d’accès complet dans un URI, tel que contoso/marketing/imageGallery.aspx. Si la valeur est vrai, le gestionnaire traite le chemin d’accès complet, contoso/marketing/imageGallery. Si la valeur est faux, le gestionnaire traite seulement la dernière section du chemin d’accès, /imageGallery.

La valeur par défaut est false.
modules Attribut de chaîne facultatif.

Spécifie le nom du ou des modules auxquels vous souhaitez mapper le nom de fichier ou le nom de fichier avec extension. Si vous spécifiez plusieurs valeurs, séparez-les par une virgule (,).

La valeur par défaut est ManagedPipelineHandler.
name Attribut de chaîne requis.

Spécifie le nom unique du mappage du gestionnaire.
path Attribut de chaîne requis.

Spécifie le nom de fichier ou l’extension de nom de fichier pour laquelle le mappage du gestionnaire s’applique.
preCondition Attribut de chaîne facultatif.

Spécifie les conditions dans lesquelles le gestionnaire s’exécutera.

L’attribut preCondition peut être une ou plusieurs des valeurs possibles suivantes. Si vous spécifiez plusieurs valeurs, séparez-les par une virgule (,).
Valeur Description
bitness32 Spécifiez la valeur bitness32 lorsque le gestionnaire est un fichier .dll 32 bits et IIS doit charger le gestionnaire uniquement pour les processus de travail qui s’exécutent en mode WOW64 (simulation 32 bits) sur un système d’exploitation 64 bits.
bitness64 Spécifiez la valeur bitness64 lorsque le gestionnaire est un fichier .dll 64 bits et IIS doit charger le gestionnaire uniquement pour les processus de travail qui s’exécutent en mode 64 bits.
integratedMode Spécifiez la valeur integratedMode lorsque le gestionnaire doit répondre uniquement aux requêtes dans les pools d’applications configurés pour utiliser le pipeline de traitement des requêtes intégré.
ISAPIMode Spécifiez la valeur ISAPIMode lorsque le gestionnaire doit répondre uniquement aux requêtes dans les pools d’applications configurés pour utiliser le mode classique.
runtimeVersionv1.1 Spécifiez la valeur runtimeVersionv1.1 lorsque le gestionnaire doit répondre uniquement aux requêtes dans les pools d’applications configurés pour utiliser .NET Framework version 1.1.
runtimeVersionv2.0 Spécifiez la valeur runtimeVersionv2.0 lorsque le gestionnaire doit répondre uniquement aux requêtes dans les pools d’applications configurés pour utiliser .NET Framework version 2.0.
requireAccess Attribut d’énumération facultatif.

Spécifie le type d’accès requis par un gestionnaire pour la ressource.

L’attribut requireAccess peut être une ou plusieurs des valeurs possibles suivantes. Si vous spécifiez plusieurs valeurs, séparez-les par une virgule (,). La valeur par défaut est Script.
Valeur Description
Execute Spécifie que le gestionnaire requiert des droits pour faire fonctionner les exécutables.

La valeur numérique est 4.
Aucun Spécifie que le gestionnaire n’a pas d’exigences d’accès.

La valeur numérique est 0.
Lire Spécifie que le gestionnaire nécessite des autorisations de lecture.

La valeur numérique est 1.
Script Spécifie que le gestionnaire requiert des droits pour exécuter les scripts.

La valeur numérique est 3.
Écrire Spécifie que le gestionnaire nécessite des autorisations d’écriture.

La valeur numérique est 2.
resourceType Attribut de chaîne facultatif.

Spécifie le type de ressource à laquelle le mappage du gestionnaire s’applique.

L’attribut resourceType peut être l’une des valeurs possibles suivantes. La valeur par défaut est Unspecified.
Valeur Description
Directory Spécifie que le mappage du gestionnaire s’applique aux requêtes uniquement pour les dossiers physiques sur disque.

La valeur numérique est 1.
Either Spécifie que le mappage du gestionnaire s’applique aux requêtes pour les fichiers ou dossiers physiques sur disque.

La valeur numérique est 2.
File Spécifie que le mappage du gestionnaire s’applique aux requêtes uniquement pour les fichiers physiques sur disque.

La valeur numérique est 0.
Unspecified Spécifie que le type de mappage n’est pas spécifié. Le mappage de gestionnaire s’applique aux requêtes, que la requête soit ou non mappée à un fichier ou dossier physique sur le disque. Utilisez ce paramètre quand vous mappez un gestionnaire à un nom de fichier ou une extension de nom de fichier qui n’existe pas sur le disque, tel que MyHandler.axd.

La valeur numérique est 3.
responseBufferLimit Attribut uint facultatif.

Spécifie la taille maximale, en octets, de la mémoire tampon de réponse pour un gestionnaire de requêtes.

La valeur par défaut est 4194304 octets.
scriptProcessor Attribut de chaîne facultatif.

Spécifie le chemin d’accès physique des fichiers d’extension ISAPI .dll ou de l’interface CGI .exe qui traite la requête.

L’attribut scriptProcessor est requis uniquement pour les mappages de gestionnaires de mappage de script. Lorsque vous mappez un gestionnaire à une extension ISAPI, vous devez spécifier ISAPIModule pour l’attribut modules. Lorsque vous mappez un gestionnaire à un fichier CGI, vous devez spécifier CGIModule pour l’attribut modules.
type Attribut de chaîne facultatif.

Spécifie le chemin d’accès de l’espace de noms d’un gestionnaire managé. L’attribut type est requis uniquement pour les gestionnaires managés.
verb Attribut de chaîne requis.

Spécifie les verbes HTTP pour lesquels le mappage du gestionnaire s’applique.

Éléments enfants

Aucune.

Exemple Configuration

L’exemple suivant contient deux éléments <add> qui définissent les mappages de gestionnaire. Le premier élément <add> définit un gestionnaire SampleHandler pour une application web s’exécutant en mode intégré IIS 7. Si vous ajoutez l'assembly de gestionnaire au répertoire app_code de l’application web, vous n’avez pas besoin d’inclure le nom de l'assembly dans la valeur de l’attribut type. Le deuxième élément <add> définit un mappage pour les demandes PHP qui utilisent le module FastCGI.

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

Exemple de code

Les exemples suivants ajoutent un mappage FastCGI pour un module PHP, puis ajoutent un gestionnaire sur le site web Contoso qui traite les requêtes PHP.

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']"

Remarque

Ce deuxième exemple montre comment ajouter un nouveau mappage de gestionnaire de ASP.NET nommé SampleHandler.new pour une URL spécifique à une application web.

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