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é
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).
Dans le volet Connexions, cliquez sur la connexion du serveur à laquelle vous souhaitez ajouter le module natif.
Dans le volet Accueil, double-cliquez sur Mappages de gestionnaires.
Sur le volet Actions, cliquez sur Ajouter un gestionnaire de module...
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.
Cliquez sur OK pour fermer la boîte de dialogue Ajouter un gestionnaire managé.
Comment créer un mappage de gestionnaire FastCGI
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).
Dans le volet Connexions, cliquez sur le nom du serveur pour lequel vous souhaitez configurer les mappages de gestionnaires FastCGI.
Dans le volet Accueil, double-cliquez sur Mappages de gestionnaires.
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.
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.
Sur la boîte de dialogue Ajouter un mappage de module, cliquez sur Oui.
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 (,).
|
||||||||||||||
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 .
|
||||||||||||||
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 .
|
||||||||||||||
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()