Si ha escrito un archivo DLL de extensión de servidor de Internet, podría ser interesado en obtener corriendo bajo el depurador, por lo que se pueden rastrear su ejecución, establecer puntos de interrupción o valores de variables de monitor después de llama a la extensión. Son un poco complicado obtener Microsoft Internet Information Server (IIS) y ejecutar con el archivo DLL en el depurador. Necesita encontrar primero un servidor tranquilo donde puede depurar su DLL en un entorno controlado. Una vez que haya encontrado un recurso, puede iniciar la depuración de la DLL.
Debido a las diferencias entre la versión 3.0 y 4.0 de IIS, es importante saber qué versión va a utilizar para depurar el archivo DLL.
Siga estos pasos para depurar una DLL usando IIS 3.0 de extensión de Internet Server:
-e W3Svc
Sugerencias de depuración
IIS se puede ejecutar como una aplicación interactiva, haciendo mucho más fácil de depuración. Para ello necesita hacer algunos cambios en su sistema. Para la cuenta de usuario que va a ejecutar el servidor bajo, hay que agregar unos privilegios.
Para agregar privilegios, ejecute el administrador de usuarios. (Si está utilizando Windows NT 3.51, ejecute MUSRMGR.EXE. Si está utilizando Windows NT 4.0, ejecute USRMGR.EXE). Haga clic en Derechos de usuario en el menú directivas . Seleccione la casilla de verificación Mostrar derechos de usuario avanzado . A continuación, actuar como parte del sistema operativo , seleccione la lista desplegable de la derecha y agregue la cuenta de usuario.
Repita este proceso con Generar auditorías de seguridad (también en la lista desplegable de la derecha). Asegúrese de que todos los servicios de Internet (WWW, ftp y gopher) se detienen y INETINFO.EXE no se está ejecutando (utilice TLIST para comprobar). Cierre la sesión e inicie sesión en. A continuación, puede cargar el IIS con la línea de comandos:
INetInfo.Exe -e W3Svc
Para cargar IIS bajo un depurador (por ejemplo, en virtud de WinDbg), utilice la siguiente línea de comandos:
WinDbg INetInfo.Exe -e W3Svc
Estás listo para ir. En Visual C++, Depurar elija en el menú generar y, a continuación, haga clic en ir. Esta acción inicia el servicio de publicación de WWW y el depurador será consciente de símbolos en la DLL. Puede ignorar la advertencia de que el archivo no tiene información de depuración.
Cuando cierre Visual C++, guardar el espacio de trabajo para INETINFO.EXE. De este modo, puede evitar reingreso la configuración para la sesión de depuración. Simplemente abra el INETINFO.Archivo de área de trabajo MDS cuando esté listo para volver a iniciar el depurador.
En la memoria caché de archivos DLL
Puede ajustar la configuración del registro en HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/servicios/W3SVC/parámetros/CacheExtensions para que el servidor reinicializar DLLs cada vez que se utilicen. Si este valor es 1, el servidor mantendrá DLL cargadas en la memoria siempre que sea posible. Esta es la configuración predeterminada para el servidor, ya que ayuda a que el servidor de lograr el máximo rendimiento y debe cambiarse sólo si utiliza el servidor para la depuración. Si haces el valor 0, el servidor siempre recargará las DLL de extensión cada vez se utilizan.
Forzar el servidor para volver a cargar el archivo DLL es útil cuando el archivo DLL podría estrellarse o perturbar cualquier dato por instancias que mantiene. Forzando el servidor para reinicializar la DLL, puede obtener el archivo DLL volver a un Estado previsible con poco esfuerzo. Asegúrese de probar su DLL mediante el ajuste de CacheExtensions normal, sin embargo, para asegurarse de código en el archivo DLL no es completamente dependiente de ese estado inicial.
Hay varias formas de establecer un entorno de depuración de los componentes de servidor y archivos DLL de extensión de servidor de Internet al utilizar IIS 4.0 o posterior. Si está utilizando a un depurador capaz de asociar a un proceso de Windows NT, puede utilizar esta funcionalidad para depurar el componente o la extensión. Por ejemplo, si está depurando con Visual C++, tomar los pasos siguientes:
Si el depurador que está utilizando no se puede adjuntar a un proceso de Windows NT, tomar los siguientes pasos para establecer un entorno de depuración adecuado:
Depurador = lt; DebuggerExeName > donde DebuggerExeName es la ruta completa para el depurador está utilizando.
Cuando se inicia el servicio de publicación World Wide Web, también se iniciará el depurador. Ahora puede establecer puntos de interrupción correspondientes en el archivo DLL de extensión de Internet Server.
No podrá establecer puntos de interrupción en el código fuente de un componente hasta que el componente se ha cargado en la memoria. Para ello, inicie Internet Explorer y vista la.Página ASP que contiene el objeto. Tan pronto como se cargue la página, debe ser capaz de establecer puntos de interrupción en el componente. Haga clic en Actualizar para ver la página de nuevo y activar los puntos de interrupción que ha seleccionado. Si el componente no se puede cargar ni una sola vez (por ejemplo, si el error se produce en el código de inicio de componente), debe cargar la DLL del componente antes de iniciar la sesión de depuración. (Consulte el paso 11 infra).
En algunos casos, puede no ser capaz de utilizar cualquiera de los dos procedimientos descritos. Si tienes dificultades para utilizar cualquiera de estas estrategias, hay un tercer enfoque, que ha sido descrito en las versiones anteriores de IIS. Este tercer enfoque requiere el establecimiento de privilegios de seguridad de Windows NT, así como realizar cambios en el registro. También desactivará su capacidad para ejecutar IIS como un servicio. Este enfoque sólo debe utilizarse si han fallado las dos estrategias anteriores.
{61738644-F196-11D0-9953-00C04FD919C1} / / WAMREG de IIS admin Service
{9F0BD3A0-EC01-11D0-A6A0-00A0C922E752} / / extensión IIS Admin Crypto
{A9E69610-B80D-11D0-B9B9-00A0C922E750} / / IISADMIN servicio
La palabra clave LocalService puede encontrarse en las subclaves adicionales de AppID.
C:\WINNT\System32\Inetsrv\Inetinfo.exe
w3svc -e
&Notanbsp; Después de haber completado la sesión de depuración, se deben revertir los pasos 5 a 1 para restaurar la configuración anterior y permitir que IIS para ejecutarse como un servicio.
&Notas técnicas por número |nbsp; Notas técnicas por categoría