CGI <cgi>
Vue d’ensemble
L'élément <cgi>
configure les paramètres par défaut pour les applications CGI (Common Gateway Interface) pour Internet Information Services (IIS) 7. Ces paramètres définissent l'environnement que IIS 7 utilisera lors du lancement des processus CGI. Par exemple, les attributs createCGIWithNewConsole et createProcessAsUser spécifient comment IIS 7 lancera une application CGI, et l'attribut délai d'expiration spécifie combien de temps IIS laissera une application CGI s'exécuter avant de mettre fin au processus.
CGI est parfois considéré comme un environnement d'application hérité. En raison du traitement associé au lancement d'applications CGI en tant que processus distincts, des technologies comme les modules HTTP, les extensions ISAPI, ASP/ASP.NET et FastCGI sont préférées aux CGI pour le développement d'applications.
Remarque
L'environnement CGI n'est pas installé par défaut. Toutefois, l'installation de l'environnement CGI installe également les fonctionnalités nécessaires à l'utilisation d'applications FastCGI. Pour plus d'informations sur l'utilisation de FastCGI sur IIS 7, consultez l'élément <fastCgi>.
Compatibilité
Version | Notes |
---|---|
IIS 10.0 | L'élément <cgi> n'a pas été modifié dans IIS 10.0. |
IIS 8.5 | L'élément <cgi> n'a pas été modifié dans IIS 8.5. |
IIS 8.0 | L'élément <cgi> n'a pas été modifié dans IIS 8.0. |
IIS 7.5 | L'élément <cgi> n'a pas été modifié dans IIS 7.5. |
IIS 7.0 | L'élément <cgi> a été introduit dans IIS 7.0. |
IIS 6.0 | Les attributs de l'élément <cgi> remplacent les propriétés de métabase IIS 6.0 suivantes : CreateProcessAsUser, CreateCGIWithNewConsoleet CGITimeout. |
Programme d’installation
L'élément <cgi>
n'est pas inclus dans l'installation par défaut d'IIS 7 et versions ultérieures. Pour utiliser l'environnement CGI, vous devez installer le service de rôle CGI. Le processus d'installation inscrit le service de rôle CGI (Common Gateway Interface) dans l'élément <globalModules>
et l'élément <modules>
.
Windows Server 2012 ou Windows Server 2012 R2
- Dans la barre des tâches, cliquez sur Gestionnaire de serveur.
- Dans Gestionnaire de serveur, cliquez sur le menu Gérer, puis sur Ajouter des rôles et des fonctionnalités.
- 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.
- À la page Rôles de serveur, développez Serveur web (IIS), Serveur web, Développement d'applications, puis sélectionnez CGI. Sélectionnez Suivant.
. - Dans la page Sélectionner des fonctionnalités, cliquez sur Suivant.
- Dans la page Confirmer les sélections d’installation, cliquez sur Installer.
- Dans la page Résultats , cliquez sur Fermer.
Windows 8 ou Windows 8.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.
- Dans le Panneau de configuration, cliquez sur Programmes et fonctionnalités, puis sur Activer ou désactiver des fonctionnalités Windows.
- Développez Internet Information Services, Services World Wide Web, Fonctionnalités de développement d'applications, puis sélectionnez CGI.
- Cliquez sur OK.
- Cliquez sur Fermer.
Windows Server 2008 ou Windows Server 2008 R2
- Dans la barre des tâches, cliquez sur Démarrer, pointez le curseur sur Outils d'administration, puis cliquez sur Gestionnaire de serveur.
- Dans le volet hiérarchie du Gestionnaire de serveur, développez Rôles, puis cliquez sur Serveur web (IIS).
- 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.
- À la page Sélectionner des services de rôle de l'Assistant Ajout de services de rôle, sélectionnez CGI puis cliquez sur Suivant.
- Dans la page Confirmer les sélections pour l'installation, cliquez sur Installer.
- Dans la page Résultats , cliquez sur Fermer.
Windows Vista ou Windows 7
- Dans la barre des tâches, cliquez sur Démarrer, puis sur Panneau de configuration.
- Dans le Panneau de configuration, cliquez sur Programmes et fonctionnalités, puis sur Activer ou désactiver des fonctionnalités Windows.
- Développez Internet Information Services, sélectionnez CGI, puis cliquez sur OK.
Procédure
Comment configurer des paramètres CGI pour un site
Ouvrez le Gestionnaire d'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 d'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).
Dans le volet Connexions, développez le nom du serveur, Sites, puis accédez au site web ou à l'application web que vous souhaitez configurer.
Dans le volet Accueil du site ou de l'application, double-cliquez sur CGI.
Dans le volet CGI, configurez les paramètres requis, puis cliquez sur Appliquer dans le volet Actions.
Configuration
Attributs
Attribut | Description |
---|---|
createCGIWithNewConsole |
Attribut booléen facultatif. Spécifie si une application CGI s'exécute dans sa propre console. Remarque : si la valeur est définie sur vrai, chaque application CGI crée une nouvelle console au démarrage de l'application. Une valeur de faux indiquant que les applications CGI doivent s'exécuter sans console. La valeur par défaut est false . |
createProcessAsUser |
Attribut booléen facultatif. Indique si un processus CGI est créé dans le contexte système ou dans le contexte de l'utilisateur requêteur. La valeur par défaut est true . |
timeout |
Attribut timeSpan facultatif. Spécifie le délai d'attente d'une application CGI. La valeur par défaut est 00:15:00 (15 minutes). |
Éléments enfants
Aucune.
Exemple Configuration
L'exemple de configuration suivant spécifie que chaque application CGI crée une nouvelle console au démarrage de l'application, que les processus CGI sont créés dans le contexte de l'utilisateur requêteur et que le délai d'attente pour les applications CGI est de 20 minutes.
<configuration>
<system.webServer>
<cgi createCGIWithNewConsole="true"
createProcessAsUser="false"
timeout="00:20:00" />
</system.webServer>
</configuration>
Exemple de code
Les exemples de code suivants spécifient que chaque application CGI crée une nouvelle console au démarrage de l'application, que les processus CGI sont créés dans le contexte de l'utilisateur requêteur et que le délai d'attente pour les applications CGI est de 20 minutes.
AppCmd.exe
appcmd.exe set config "Default Web Site" -section:system.webServer/cgi /createCGIWithNewConsole:"True" /commit:apphost
appcmd.exe set config "Default Web Site" -section:system.webServer/cgi /createProcessAsUser:"False" /commit:apphost
appcmd.exe set config "Default Web Site" -section:system.webServer/cgi /timeout:"00:20:00" /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 cgiSection = config.GetSection("system.webServer/cgi", "Default Web Site");
cgiSection["createCGIWithNewConsole"] = true;
cgiSection["createProcessAsUser"] = false;
cgiSection["timeout"] = TimeSpan.Parse("00:20:00");
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 cgiSection As ConfigurationSection = config.GetSection("system.webServer/cgi", "Default Web Site")
cgiSection("createCGIWithNewConsole") = True
cgiSection("createProcessAsUser") = False
cgiSection("timeout") = TimeSpan.Parse("00:20:00")
serverManager.CommitChanges()
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var cgiSection = adminManager.GetAdminSection("system.webServer/cgi", "MACHINE/WEBROOT/APPHOST/Default Web Site");
cgiSection.Properties.Item("createCGIWithNewConsole").Value = true;
cgiSection.Properties.Item("createProcessAsUser").Value = false;
cgiSection.Properties.Item("timeout").Value = "00:20:00";
adminManager.CommitChanges();
VBScript
Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set cgiSection = adminManager.GetAdminSection("system.webServer/cgi", "MACHINE/WEBROOT/APPHOST/Default Web Site")
cgiSection.Properties.Item("createCGIWithNewConsole").Value = True
cgiSection.Properties.Item("createProcessAsUser").Value = False
cgiSection.Properties.Item("timeout").Value = "00:20:00"
adminManager.CommitChanges()