CGI CGI <>

Panoramica

L'elemento <cgi> configura le impostazioni predefinite per le applicazioni CGI (Common Gateway Interface) per Internet Information Services (IIS) 7. Queste impostazioni definiscono l'ambiente che IIS 7 userà durante l'avvio dei processi CGI. Ad esempio, gli attributi createCGIWithNewConsole e createProcessAsUser specificano il modo in cui IIS 7 avvierà un'applicazione CGI e l'attributo timeout specifica la durata dell'esecuzione di un'applicazione CGI prima di terminare il processo.

A volte CGI è considerato un ambiente dell'applicazione legacy. A causa del sovraccarico di elaborazione associato all'avvio di applicazioni CGI come processi separati, tecnologie come moduli HTTP, estensioni ISAPI, ASP/ASP.NET e FastCGI sono preferite per lo sviluppo di applicazioni.

Nota

L'ambiente CGI non è installato per impostazione predefinita; tuttavia, l'installazione dell'ambiente CGI installa anche le funzionalità necessarie per l'uso di applicazioni FastCGI. Per altre informazioni sull'uso di FastCGI in IIS 7, vedere l'elemento <fastCgi> .

Compatibilità

Versione Note
IIS 10.0 L'elemento <cgi> non è stato modificato in IIS 10.0.
IIS 8,5 L'elemento <cgi> non è stato modificato in IIS 8.5.
IIS 8,0 L'elemento <cgi> non è stato modificato in IIS 8.0.
IIS 7,5 L'elemento <cgi> non è stato modificato in IIS 7.5.
IIS 7.0 L'elemento <cgi> è stato introdotto in IIS 7.0.
IIS 6.0 Gli attributi per l'elemento <cgi> sostituisce le proprietà metabase di IIS 6.0 seguenti: CreateProcessAsUser, CreateCGIWithNewConsole e CGITimeout.

Installazione

L'elemento <cgi> non è incluso nell'installazione predefinita di IIS 7 e versioni successive. Per usare l'ambiente CGI, è prima necessario installare il servizio ruolo CGI. Il processo di installazione registra il servizio ruolo Common Gateway Interface (CGI) sia nell'elemento che <modules> nell'elemento<globalModules>.

Windows Server 2012 o Windows Server 2012 R2

  1. Sulla barra delle applicazioni fare clic su Server Manager.
  2. In Server Manager fare clic sul menu Gestisci e quindi su Aggiungi ruoli e funzionalità.
  3. Nella procedura guidata Aggiungi ruoli e funzionalità fare clic su Avanti. Selezionare il tipo di installazione e fare clic su Avanti. Selezionare il server di destinazione e fare clic su Avanti.
  4. Nella pagina Ruoliserver espandere Server Web (IIS), espandere Server Web, espandere Server Web, espandere Sviluppo applicazioni e quindi selezionare CGI. Fare clic su Avanti.
    Screenshot della pagina Ruoli server. L'opzione C G I è selezionata e evidenziata. .
  5. Nella pagina Selezione funzionalità fare clic su Avanti.
  6. Nella pagina Conferma selezioni per l'installazione fare clic su Installa.
  7. Nella pagina Risultati fare clic su Chiudi.

Windows 8 o Windows 8.1

  1. Nella schermata Start spostare il puntatore nell'angolo inferiore sinistro, fare clic con il pulsante destro del mouse sul pulsante Start e quindi fare clic su Pannello di controllo.
  2. In Pannello di controllo fare clic su Programmi e funzionalità e quindi su Attiva o disattiva le funzionalità di Windows.
  3. Espandere Internet Information Services, espandere Servizi Web a livello mondiale, espandere Funzionalità di sviluppo applicazioni e quindi selezionare CGI.
    Screenshot dell'albero di spostamento delle funzionalità di sviluppo dell'applicazione. C G I è selezionato e evidenziato.
  4. Fare clic su OK.
  5. Fare clic su Close.

Windows Server 2008 o Windows Server 2008 R2

  1. Nella barra delle applicazioni fare clic su Start, scegliere Strumenti di amministrazione e quindi fare clic su Server Manager.
  2. Nel riquadro della gerarchia di Server Manager espandere Ruoli e quindi fare clic su Server Web (IIS).
  3. Nel riquadro Server Web (IIS) scorrere fino alla sezione Servizi ruolo e quindi fare clic su Aggiungi servizi ruolo.
  4. Nella pagina Seleziona servizi ruolo della Procedura guidata Aggiungi servizi ruolo selezionare CGI e quindi fare clic su Avanti.
    Screenshot dell'albero di spostamento della procedura guidata Aggiungi servizi ruolo. C G I è selezionato e evidenziato.
  5. Nella pagina Conferma selezioni per l'installazione fare clic su Installa.
  6. Nella pagina Risultati fare clic su Chiudi.

Windows Vista o Windows 7

  1. Nella barra delle applicazioni fare clic su Start e quindi fare clic su Pannello di controllo.
  2. In Pannello di controllo fare clic su Programmi e funzionalità e quindi su Attiva o disattiva funzionalità di Windows.
  3. Espandere Internet Information Services, quindi selezionare CGI e quindi fare clic su OK.
    Screenshot dell'albero di spostamento di Internet Information Services. Le funzionalità di sviluppo delle applicazioni vengono espanse. C G I è selezionato e evidenziato.

Procedure

Come configurare le impostazioni CGI per un sito

  1. Aprire Gestione Internet Information Services (IIS):

    • Se si usa Windows Server 2012 o Windows Server 2012 R2:

      • Nella barra delle applicazioni fare clic su Server Manager, scegliere Strumenti e quindi fare clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows 8 o Windows 8.1:

      • Tenere premuto il tasto Windows, premere la lettera X e quindi fare clic su Pannello di controllo.
      • Fare clic su Strumenti di amministrazione e quindi fare doppio clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows Server 2008 o Windows Server 2008 R2:

      • Nella barra delle applicazioni fare clic su Start, scegliere Strumenti di amministrazione e quindi fare clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows Vista o Windows 7:

      • Nella barra delle applicazioni fare clic su Start e quindi fare clic su Pannello di controllo.
      • Fare doppio clic su Strumenti di amministrazione e quindi fare doppio clic su Gestione Internet Information Services (IIS).
  2. Nel riquadro Connessioni espandere il nome del server, espandere Siti e quindi passare al sito Web o all'applicazione Web da configurare.

  3. Nel riquadro Home del sito o dell'applicazione fare doppio clic su CGI.
    Screenshot del riquadro Home. L'icona C G I è evidenziata.

  4. Nel riquadro CGI configurare le impostazioni necessarie e quindi fare clic su Applica nel riquadro Azioni .
    Screenshot del riquadro C G I. Nella casella Visualizza vengono scelti nomi descrittivi. Vengono visualizzate le categorie Comportamento e sicurezza.

Configurazione

Attributi

Attributo Descrizione
createCGIWithNewConsole Attributo booleano facoltativo.

Specifica se un'applicazione CGI viene eseguita nella propria console.

Nota: Se il valore è impostato su true, ogni applicazione CGI crea una nuova console all'avvio dell'applicazione. Un valore false indica che le applicazioni CGI devono essere eseguite senza una console.

Il valore predefinito è false.
createProcessAsUser Attributo booleano facoltativo.

Specifica se un processo CGI viene creato nel contesto di sistema o nel contesto dell'utente richiesto.

Il valore predefinito è true.
timeout Attributo timeSpan facoltativo.

Specifica il timeout per un'applicazione CGI.

Il valore predefinito è 00:15:00 (15 minuti)

Elementi figlio

Nessuno.

Esempio di configurazione

L'esempio di configurazione seguente specifica che ogni applicazione CGI crea una nuova console all'avvio dell'applicazione, che i processi CGI vengono creati nel contesto dell'utente richiesto e che il timeout per le applicazioni CGI è di 20 minuti.

<configuration>
   <system.webServer>
      <cgi createCGIWithNewConsole="true"
         createProcessAsUser="false"
         timeout="00:20:00" />
   </system.webServer>
</configuration>

Codice di esempio

Gli esempi di codice seguenti specificano che ogni applicazione CGI crea una nuova console all'avvio dell'applicazione, che i processi CGI vengono creati nel contesto dell'utente richiedente e che il timeout per le applicazioni CGI è di 20 minuti

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

Nota

È necessario assicurarsi di impostare il parametro commit su apphost quando si usa AppCmd.exe per configurare queste impostazioni. In questo modo le impostazioni di configurazione vengono confermate nella sezione relativa al percorso appropriato nel file 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()