Share via


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

  1. Dans la barre des tâches, cliquez sur Gestionnaire de serveur.
  2. Dans Gestionnaire de serveur, cliquez sur le menu Gérer, puis sur Ajouter des rôles et des fonctionnalités.
  3. 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.
  4. À la page Rôles de serveur, développez Serveur web (IIS), Serveur web, Développement d'applications, puis sélectionnez CGI. Sélectionnez Suivant.
    Screenshot of the Server Roles page. The C G I option is selected and highlighted. .
  5. Dans la page Sélectionner des fonctionnalités, cliquez sur Suivant.
  6. Dans la page Confirmer les sélections d’installation, cliquez sur Installer.
  7. Dans la page Résultats , cliquez sur Fermer.

Windows 8 ou Windows 8.1

  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.
  2. Dans le Panneau de configuration, cliquez sur Programmes et fonctionnalités, puis sur Activer ou désactiver des fonctionnalités Windows.
  3. Développez Internet Information Services, Services World Wide Web, Fonctionnalités de développement d'applications, puis sélectionnez CGI.
    Screenshot of the Application Development Features navigation tree. C G I is selected and highlighted.
  4. Cliquez sur OK.
  5. Cliquez sur Fermer.

Windows Server 2008 ou Windows Server 2008 R2

  1. Dans la barre des tâches, cliquez sur Démarrer, pointez le curseur sur Outils d'administration, puis cliquez sur Gestionnaire de serveur.
  2. Dans le volet hiérarchie du Gestionnaire de serveur, développez Rôles, puis cliquez sur Serveur web (IIS).
  3. 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.
  4. À 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.
    Screenshot of the Add Role Services Wizard navigation tree. C G I is selected and highlighted.
  5. Dans la page Confirmer les sélections pour l'installation, cliquez sur Installer.
  6. Dans la page Résultats , cliquez sur Fermer.

Windows Vista ou Windows 7

  1. Dans la barre des tâches, cliquez sur Démarrer, puis sur Panneau de configuration.
  2. Dans le Panneau de configuration, cliquez sur Programmes et fonctionnalités, puis sur Activer ou désactiver des fonctionnalités Windows.
  3. Développez Internet Information Services, sélectionnez CGI, puis cliquez sur OK.
    Screenshot of the Internet Information Services navigation tree. Application Development Features is expanded. C G I is selected and highlighted.

Procédure

Comment configurer des paramètres CGI pour un site

  1. 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).
  2. 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.

  3. Dans le volet Accueil du site ou de l'application, double-cliquez sur CGI.
    Screenshot of the Home pane. The C G I icon is highlighted.

  4. Dans le volet CGI, configurez les paramètres requis, puis cliquez sur Appliquer dans le volet Actions.
    Screenshot of the C G I pane. In the Display box, Friendly Names is chosen. The Behavior and Security categories are shown.

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