CÓMO: Depurar aplicaciones CGI (Common Gateway Interface) en IIS con Visual Studio

Seleccione idioma Seleccione idioma
Id. de artículo: 238788 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

En este artículo paso a paso se describe cómo depurar con cualquier versión de Visual Studio aplicaciones CGI (Common Gateway Interface) que se ejecutan en Servicios de Internet Information Server (IIS).

Depurar una aplicación CGI de Visual C con Visual Studio

Para depurar una aplicación CGI de Visual C mediante cualquier versión de Visual Studio, siga estos pasos:
  1. El servicio de administración de IIS (IIS Admin) debe interactuar con el escritorio. Para configurarlo, siga estos pasos:
    1. Abra el Panel de control y siga estos pasos:
      • En Windows NT: haga clic en Servicios.
      • En Windows 2000, Windows XP y .NET Server: haga clic en Herramientas administrativas y, después, haga clic en Servicios.
    2. Haga doble clic en Administración de IIS.
    3. En la ficha Iniciar sesión, active la casilla de verificación Permitir a los servicios que interactúen con el Escritorio.

      Nota: en este artículo se supone que el servicio de administración de IIS se ejecuta como un sistema local.
    4. Detenga y reinicie el servicio de administración de IIS.
  2. Antes de incluir el archivo Windows.h, agregue el código siguiente y cree una versión de la CGI para depurar:
    #define _WIN32_WINNT 0x0400
    					
  3. Pegue el código siguiente al principio de la 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 la aplicación CGI.
  5. Adjunte un depurador (como WinDBG o Visual C) al proceso CGI mientras se muestra un cuadro de mensaje.
  6. Una vez adjuntado el depurador, abra el archivo fuente y establezca un punto de parada. Después haga clic en Aceptar.

    Cuando se cierre el cuadro de mensaje, el programa CGI se reanuda y se detiene en el punto de parada.

Usar WinDBG

Para depurar una aplicación CGI con WinDBG, aunque no tenga que cambiar ningún código debe estar familiarizado con WinDBG e instalar las herramientas de depuración. Puede descargar las herramientas de depuración desde el siguiente sitio Web de Microsoft:
Herramientas de depuración de Microsoft
http://www.microsoft.com/whdc/devtools/ddk/default.mspx

Establecer opciones de servicio

Establezca las opciones Ejecución de archivos de imagen de modo que cuando el servicio o el programa CGI se inicie, lo haga en el depurador. Compruebe que el servicio puede interactuar con el escritorio según se ha descrito anteriormente en este capítulo. De lo contrario, cuando el programa CGI se inicie, cargará el depurador y no lo verá.
  1. Inicie el Editor del Registro (Regedt32.exe):

    Haga clic en Inicio, haga clic en Ejecutar y escriba Regedt32.exe.
  2. Busque la siguiente clave del Registro:
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\opciones de ejecución del archivo de imagen]
  3. Cree una subclave con el nombre de su archivo ejecutable CGI (por ejemplo, MiCGI.exe).
  4. Para esta subclave, agregue el valor REG_SZ denominado Debugger y la ruta de acceso completa del depurador, pero omita la extensión ".exe". También puede agregar los comandos que desee para el depurador. La ubicación predeterminada para instalar WinDBG es la siguiente:
    "Debugger"="C:\\Debuggers\\windbg.exe"
    Nota: la ruta de acceso que señala al depurador WinDBG no debe contener ningún espacio o extensión de archivo. Por ejemplo, windbg, como se muestra en lo siguiente:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\opciones de ejecución del archivo de imagen\suCGI.exe "Debugger"="C:\windbg"
  5. Cierre el Editor del Registro.
  6. Detenga e inicie el servicio IISADMIN y ejecute el programa CGI.

    Nota: para que el depurador aparezca en el escritorio predeterminado, el servicio de administración de IIS debe ejecutarse como Sistema local y debe activar la casilla Permitir a los servicios que interactúen con el Escritorio. Para configurarlo, vaya al paso 1 de las instrucciones anteriores proporcionadas en este artículo.
  7. El depurador se iniciará cuando la imagen para el archivo ejecutable del servicio esté cargada en la memoria.
Nota: puede que tenga que establecer el valor de la propiedad CreateProcessAsUser en la metabase en false para asociar un depurador. Esto se debe a que la cuenta en la que la aplicación CGI se ejecuta no puede heredar la opción Permitir que el servicio interactúe con el escritorio para el servicio de administración de IIS cuando se genera el archivo ejecutable CGI. Puede utilizar la secuencia de comandos administrativa adsutil.vbs para establecer la opción Permitir que el servicio interactúe con el escritorio. De manera predeterminada, el valor es true. Por ejemplo, use el comando siguiente:
adsutil.vbs w3svc/CreateProcessAsUser "false"

Referencias

Para obtener información adicional acerca de cómo llevar a cabo la depuración, haga clic en los números de artículo siguientes para verlos en Microsoft Knowledge Base:
273639 CÓMO: Iniciar IISAdmin y servicios dependientes en un depurador
286350 Cómo utilizar ADPlus para solucionar bloqueos
261871 INFO: Recursos de depuración COM+ y MTS
183480 CÓMO: Depurar las DLL de ISAPI bajo IIS 4.0 e IIS 5.0
170738 Depurar un servicio de Windows NT

Propiedades

Id. de artículo: 238788 - Última revisión: martes, 04 de diciembre de 2007 - Versión: 4.5
La información de este artículo se refiere a:
  • Microsoft Internet Information Server 2.0
  • Servicios de Microsoft Internet Information Server 3.0
  • Microsoft Internet Information Server 4.0
  • Servicios de Microsoft Internet Information Server 5.0
  • Servicios de Microsoft Internet Information Server 5.1
  • Servicios de Microsoft Internet Information Server 6.0
Palabras clave: 
kbhowto kbhowtomaster kbcgi KB238788

Enviar comentarios

 

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