Compartilhar via


CGI <cgi>

Visão geral

O elemento <cgi> define as configurações padrão para aplicativos CGI para IIS (Serviços de Informações da Internet) 7. Essas configurações definem o ambiente que o IIS 7 usará ao iniciar processos de CGI. Por exemplo, os atributos createCGIWithNewConsole e createProcessAsUser especificam como o IIS 7 iniciará um aplicativo CGI e o atributo de tempo limite especifica quanto tempo o IIS permitirá que um aplicativo CGI seja executado antes de encerrar o processo.

O CGI às vezes é considerado um ambiente de aplicativo herdado. Devido à sobrecarga de processamento associada à inicialização de aplicativos CGI como processos separados, tecnologias como módulos HTTP, extensões ISAPI, ASP/ASP.NET e FastCGI são preferenciais em vez de CGI para desenvolvimento de aplicativos.

Observação

O ambiente CGI não está instalado por padrão; no entanto, a instalação do ambiente CGI também instala a funcionalidade necessária para usar aplicativos FastCGI. Para obter mais informações sobre como usar o FastCGI no IIS 7, consulte o elemento <fastCgi>.

Compatibilidade

Versão Observações
IIS 10.0 O elemento <cgi> não foi modificado no IIS 10.0.
IIS 8.5 O elemento <cgi> não foi modificado no IIS 8.5.
IIS 8.0 O elemento <cgi> não foi modificado no IIS 8.0.
IIS 7.5 O elemento <cgi> não foi modificado no IIS 7.5.
IIS 7.0 O elemento <cgi> foi introduzido no IIS 7.0.
IIS 6,0 Os atributos do elemento <cgi> substituem as seguintes propriedades de metabase do IIS 6.0: CreateProcessAsUser, CreateCGIWithNewConsole e CGITimeout.

Instalação

O elemento <cgi> não está incluído na instalação padrão do IIS 7 e posterior. Para usar o ambiente CGI, primeiro você deve instalar o serviço de função CGI. O processo de instalação registra o serviço de função CGI (Common Gateway Interface) no elemento <globalModules> e <modules>.

Windows Server 2012 R2 ou Windows Server 2012

  1. Na barra de tarefas, clique em Gerenciador do Servidor.
  2. No Gerenciador do Servidor, clique no menu Gerenciar e clique em Adicionar Funções e Recursos.
  3. No assistente Adicionar Funções e Recursos, clique em Avançar. Selecione o tipo de instalação e clique em Avançar. Selecione o servidor de destino e clique em Avançar.
  4. Na página Funções de Servidor, expanda Servidor Web (IIS), Servidor Web, Desenvolvimento do Aplicativo e selecionar CGI. Clique em Avançar.
    Screenshot of the Server Roles page. The C G I option is selected and highlighted. .
  5. Na página Selecionar Recursos, clique em Avançar.
  6. Na página Confirmar seleções de instalação, clique em Instalar.
  7. Na página Resultados , clique em Fechar.

Windows 8 ou Windows 8.1

  1. Na tela Iniciar, mova o ponteiro até o canto inferior esquerdo, clique com o botão direito do mouse no botão Iniciar e clique em Painel de Controle.
  2. Em Painel de Controle, clique em Programas e Recursos e clique em Ativar ou desativar recursos do Windows.
  3. Expanda Serviços de Informações da Internet, Serviços da World Wide Web, Recursos de Desenvolvimento de Aplicativos e selecione CGI.
    Screenshot of the Application Development Features navigation tree. C G I is selected and highlighted.
  4. Clique em OK.
  5. Clique em Fechar.

Windows Server 2008 R2 ou Windows Server 2008

  1. Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador do Servidor.
  2. No painel de hierarquia do Gerenciador do Servidor, expanda Funções e clique em Servidor Web (IIS).
  3. No painel Servidor Web (IIS), role até a seção Serviços de Função e clique em Adicionar Serviços de Função.
  4. Na página Selecionar Serviços de Função do Assistente para Adicionar Serviços de Função, selecione CGI e clique em Avançar.
    Screenshot of the Add Role Services Wizard navigation tree. C G I is selected and highlighted.
  5. Na página Confirmar Seleções de Instalação, clique em Instalar.
  6. Na página Resultados , clique em Fechar.

Windows Vista ou Windows 7

  1. Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.
  2. Em Painel de Controle, clique em Programas e Recursos e clique em Ativar ou desativar Recursos do Windows.
  3. Expanda Serviços de Informações da Internet, selecione CGI e, em seguida, clique em OK.
    Screenshot of the Internet Information Services navigation tree. Application Development Features is expanded. C G I is selected and highlighted.

Instruções

Como definir as configurações de CGI para um site

  1. Abra o Gerenciador dos Serviços de Informações da Internet (IIS):

    • Caso você esteja usando o Windows Server 2012 ou o Windows Server 2012 R2:

      • Na barra de tarefas, clique em Gerenciador do Servidor, em Ferramentas e em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Se você estiver usando o Windows 8 ou Windows 8.1:

      • Mantenha pressionada a tecla Windows, pressione a letra X e clique em Painel de Controle.
      • Clique em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Caso você esteja usando o Windows Server 2008 ou o Windows Server 2008 R2:

      • Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Se você estiver usando o Windows Vista ou Windows 7:

      • Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.
      • Clique duas vezes em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
  2. No painel Conexões, expanda o nome do servidor, expanda Sites e navegue até o site ou aplicativo Web que você deseja configurar.

  3. No painel Página Inicial do site ou aplicativo, clique duas vezes em CGI.
    Screenshot of the Home pane. The C G I icon is highlighted.

  4. No painel CGI, defina as configurações necessárias e clique em Aplicar no painel Ações.
    Screenshot of the C G I pane. In the Display box, Friendly Names is chosen. The Behavior and Security categories are shown.

Configuração

Atributos

Atributo Descrição
createCGIWithNewConsole Atributo booliano opcional.

Especifica se um aplicativo CGI é executado em seu próprio console.

Observação: se o valor for definido como true, cada aplicativo CGI criará um novo console quando o aplicativo for iniciado. Um valor de false indica que os aplicativos CGI devem ser executados sem um console.

O valor padrão é false.
createProcessAsUser Atributo booliano opcional.

Especifica se um processo de CGI é criado no contexto do sistema ou no contexto do usuário solicitante.

O valor padrão é true.
timeout Atributo timeSpan opcional.

Especifica o tempo limite para um aplicativo CGI.

O valor padrão é 00:15:00 (15 minutos)

Elementos filho

Nenhum.

Exemplo de configuração

O exemplo de configuração a seguir especifica que cada aplicativo CGI cria um novo console quando o aplicativo é iniciado, que os processos de CGI são criados no contexto do usuário solicitante e que o tempo limite para aplicativos CGI é de 20 minutos.

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

Exemplo de código

Os exemplos de código a seguir especificam que cada aplicativo CGI cria um novo console quando o aplicativo é iniciado, que os processos de CGI são criados no contexto do usuário solicitante e que o tempo limite para aplicativos CGI é de 20 minutos

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

Observação

Defina o parâmetro commit para apphost quando usar AppCmd.exe para definir essas configurações. Isso confirma as definições de configuração para a seção de local apropriado no arquivo 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()