COMO: Depurar Common Gateway Interface aplicativos em execução no IIS usando o Visual Studio

Traduções deste artigo Traduções deste artigo
ID do artigo: 238788 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Este artigo passo a passo descreve como depurar aplicativos interface comum de gateway (CGI) que estão executando em Internet Information Services (IIS) usando qualquer versão do Visual Studio.

Depurar um aplicativo CGI C Visual usando o Visual Studio

Para depurar um aplicativo Visual C CGI usando qualquer versão do Visual Studio, execute estas etapas:
  1. O serviço de administração do IIS deve interagir com a área de trabalho. Para configurar isso, execute estas etapas:
    1. Abra o Painel de controle e siga estas etapas:
      • Para o Windows NT: Clique em serviços .
      • Para o Windows 2000, Windows XP e .NET Server: clique em Ferramentas administrativas e, em seguida, clique em serviços .
    2. Clique duas vezes em Serviço de administração do IIS .
    3. Na guia log, marque a caixa de seleção Permitir o serviço interaja com a área de trabalho .

      Observação Este artigo pressupõe que o serviço de administração do IIS seja executado como sistema local.
    4. Pare e reinicie o serviço IIS Admin.
  2. Antes de você incluir o arquivo Windows.h, adicione o seguinte código e, em seguida, criar uma versão de depuração do CGI:
    #define _WIN32_WINNT 0x0400
    					
  3. Cole o seguinte código no início do CGI:
    #ifdef _DEBUG
    char szMessage [256];
    wsprintf (szMessage, "Please attach a debugger to the process 0x%X (%s) and click OK",
          GetCurrentProcessId(), argv[0]);
    MessageBox(NULL, szMessage, "CGI Debug Time!",
          MB_OK|MB_SERVICE_NOTIFICATION);
    #endif
    					
  4. Inicie o aplicativo CGI.
  5. Anexar um depurador (por exemplo, WinDBG ou Visual C) para o CGI processar enquanto uma caixa de mensagem é exibida.
  6. Quando o depurador é anexado, abra o arquivo de origem e definir um ponto de interrupção e em seguida, clique em OK .

    Quando a caixa de mensagem é fechada, o programa CGI reinicia e o ponto de interrupção será atingido.

Usando o WinDBG

Para depurar um aplicativo CGI com o WinDBG, embora você não tenha que alterar qualquer código, é necessário estar familiarizado com o WinDBG e instalar as ferramentas de depuração. Você pode baixar as ferramentas de depuração do site da Microsoft:
Microsoft Debugging Tools
http://www.microsoft.com/whdc/devtools/ddk/default.mspx

Definir opções de serviço

Defina as opções de Execução do arquivo de imagem de forma que quando o serviço (ou o programa CGI) é iniciado, ele inicia sob o depurador. Certifique-se de que o serviço pode interagir com a área de trabalho, conforme instruído neste artigo. Caso contrário, quando o programa CGI é iniciado, ele carrega o depurador e não será exibida.
  1. Inicie o Editor de registro (Regedt32.exe):

    Clique em Iniciar , clique em Executar e, em seguida, digite regedt32 .
  2. Localize a seguinte chave do Registro:
    [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File execução segurança\]
  3. Crie uma subchave com o nome do seu arquivo executável de CGI (por exemplo, MyCGI.exe).
  4. A essa subchave, adicione o valor REG_SZ denominado depurador e o caminho completo para o depurador, mas omitir a extensão ".exe". Você também pode adicionar os comandos para o depurador. O local padrão para instalar o WinDBG é o seguinte:
    "Debugger"="C:\\Debuggers\\windbg.exe"
    Observação O caminho que aponta para o depurador WinDBG não deve conter qualquer espaços ou extensões de arquivo. Por exemplo, windbg, conforme mostrado a seguir:
    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File execução Options\yourCGI.exe "C:\windbg depurador"=""
  5. Feche o Editor do Registro.
  6. Parar e inicia o serviço IISADMIN e, em seguida, executar o CGI programa.

    Observação Para o depurador aparecem na área de trabalho padrão, a administração do IIS serviço deve ser executado como sistema local e você deve marcar a caixa de seleção Permitir o serviço interaja com a área de trabalho . Para configurar isso, vá para a etapa 1 das instruções neste artigo.
  7. O depurador será iniciado quando a imagem para o serviço de arquivo executável é carregado na memória.
Observação Talvez você precise definir o valor da propriedade CreateProcessAsUser na metabase como false para anexar um depurador. Isso ocorre porque a conta que o aplicativo CGI é executado no não pode herdar a configuração Permitir o serviço interaja com a área de trabalho para o serviço de administração do IIS quando o arquivo executável CGI é gerado. Você pode usar o script administrativo adsutil.vbs para definir a configuração Permitir o serviço interaja com a área de trabalho . Por padrão, a configuração é true . Por exemplo, use o seguinte comando:
w3svc/CreateProcessAsUser Adsutil.vbs "false"

Referências

Para obter informações adicionais sobre a depuração, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
273639COMO: Iniciar serviços dependentes em um depurador e IISAdmin
286350COMO: Utilizar o ADPlus para solucionar "Trava" e "Falha"
261871INFO: + E MTS recursos de depuração
183480COMO: Depurar DLLs ISAPI no IIS 4.0 e IIS 5.0

Propriedades

ID do artigo: 238788 - Última revisão: segunda-feira, 3 de dezembro de 2007 - Revisão: 4.7
A informação contida neste artigo aplica-se a:
  • Microsoft Internet Information Server 2.0
  • Microsoft Internet Information Server 3.0
  • Microsoft Internet Information Server 4.0
  • Microsoft Internet Information Services 5.0
  • Microsoft Internet Information Services version 5.1
  • Microsoft Internet Information Services 6.0
Palavras-chave: 
kbmt kbcgi kbhowto kbhowtomaster KB238788 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 238788

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com