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
- Sulla barra delle applicazioni fare clic su Server Manager.
- In Server Manager fare clic sul menu Gestisci e quindi su Aggiungi ruoli e funzionalità.
- 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.
- Nella pagina Ruoliserver espandere Server Web (IIS), espandere Server Web, espandere Server Web, espandere Sviluppo applicazioni e quindi selezionare CGI. Fare clic su Avanti.
. - Nella pagina Selezione funzionalità fare clic su Avanti.
- Nella pagina Conferma selezioni per l'installazione fare clic su Installa.
- Nella pagina Risultati fare clic su Chiudi.
Windows 8 o Windows 8.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.
- In Pannello di controllo fare clic su Programmi e funzionalità e quindi su Attiva o disattiva le funzionalità di Windows.
- Espandere Internet Information Services, espandere Servizi Web a livello mondiale, espandere Funzionalità di sviluppo applicazioni e quindi selezionare CGI.
- Fare clic su OK.
- Fare clic su Close.
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 Server Manager.
- Nel riquadro della gerarchia di Server Manager espandere Ruoli e quindi fare clic su Server Web (IIS).
- Nel riquadro Server Web (IIS) scorrere fino alla sezione Servizi ruolo e quindi fare clic su Aggiungi servizi ruolo.
- Nella pagina Seleziona servizi ruolo della Procedura guidata Aggiungi servizi ruolo selezionare CGI e quindi fare clic su Avanti.
- Nella pagina Conferma selezioni per l'installazione fare clic su Installa.
- Nella pagina Risultati fare clic su Chiudi.
Windows Vista o Windows 7
- Nella barra delle applicazioni fare clic su Start e quindi fare clic su Pannello di controllo.
- In Pannello di controllo fare clic su Programmi e funzionalità e quindi su Attiva o disattiva funzionalità di Windows.
- Espandere Internet Information Services, quindi selezionare CGI e quindi fare clic su OK.
Procedure
Come configurare le impostazioni CGI per un sito
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).
Nel riquadro Connessioni espandere il nome del server, espandere Siti e quindi passare al sito Web o all'applicazione Web da configurare.
Nel riquadro Home del sito o dell'applicazione fare doppio clic su CGI.
Nel riquadro CGI configurare le impostazioni necessarie e quindi fare clic su Applica nel riquadro Azioni .
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()