Solución de problemas de solicitudes con errores mediante el seguimiento en IIS 7
Se aplica a: Internet Information Services 7.0
Nota:
Este artículo se aplica a IIS 7.0. Para obtener versiones más recientes, consulte Solución de problemas de solicitudes con errores mediante el seguimiento en IIS 8.5.
El seguimiento basado en solicitudes está disponible tanto en servidores IIS independientes como en aplicaciones web de Azure y proporciona una manera de determinar qué sucede exactamente con las solicitudes y por qué, si puede reproducir el problema que está experimentando. Problemas como un rendimiento deficiente en algunas solicitudes o errores relacionados con la autenticación en otras solicitudes o el error del servidor 500 de ASP o ASP.NET suelen ser difíciles de solucionar, a menos que haya capturado el seguimiento del problema cuando se produce. En este artículo se describe el seguimiento de solicitudes con error en el servidor IIS. Para obtener más información sobre cómo hacer esto en aplicaciones web de Azure, consulte Solución de problemas de una aplicación en Azure App Service con Visual Studio.
El seguimiento de solicitudes con error está diseñado para almacenar en búfer los eventos de seguimiento de una solicitud y vaciarlos solo en el disco si se produce un error en la solicitud, donde se proporciona la definición de "error". Si desea saber por qué recibe mensajes de error 404.2 o que la solicitud empieza a colgar, use Seguimiento de solicitudes con error.
Las tareas que se muestran en este artículo incluyen:
- Habilitación del módulo Seguimiento de solicitudes con error.
- Configuración de la semántica del archivo de registro de seguimiento de solicitudes con error.
- Definir la dirección URL para la que se mantienen los seguimientos de solicitudes con errores, incluidas las definiciones de error y las áreas que se van a realizar el seguimiento.
- Generación de la condición de error y visualización del seguimiento resultante.
Requisitos previos
Instalación de IIS
Debe instalar IIS 7 o superior para poder realizar las tareas de este artículo. Vaya a para http://localhost/
ver si IIS está instalado. Si IIS no está instalado, consulte Instalación de IIS en Windows Server 2008 para obtener instrucciones de instalación. Al instalar IIS, asegúrese de que también instale las siguientes características:
- ASP.NET (en World Wide Web Services - Application Development Features - ASP.NET)
- Seguimiento (en Seguimiento de estado y diagnóstico de - servicios World Wide Web) -
Iniciar sesión como administrador
Asegúrese de que la cuenta que usa para iniciar sesión es la cuenta de administrador o está en el grupo de administradores.
Nota:
Estar en el grupo Administradores no le concede derechos de usuario de administrador completos de forma predeterminada. Debe ejecutar aplicaciones como administrador, lo que puede hacer haciendo clic con el botón derecho en el icono de la aplicación y seleccionando Ejecutar como administrador.
Realización de una copia de seguridad
Debe realizar una copia de seguridad de la configuración antes de realizar las tareas en las secciones siguientes.
Para realizar una copia de seguridad de la configuración, siga estos pasos:
Seleccione Iniciar>todos los accesorios de>programas.
Haga clic con el botón derecho en símbolo del sistema y, a continuación, seleccione Ejecutar como administrador.
En un símbolo del sistema, ejecute el siguiente comando:
%windir%\system32\inetsrv\appcmd add backup cleanInstall
Creación de contenido de ejemplo
Vaya a
%systemdrive%\inetpub\wwwroot
.Mueva el contenido a una ubicación segura (en caso de que desee restaurar el contenido existente) o elimínelo.
Cree un archivo en blanco y asígnelo el nombre test.asp.
En el símbolo del sistema, vaya al archivo test.asp en \inetpub\wwwroot.
En el archivo test.asp , pegue el siguiente contenido:
<h2>Failed Request Tracing Lab</h2><br> <br>Today's date is <% response.write(Date()) %>
Deshabilitar ASP
ASP debe estar deshabilitado para esta tarea. ASP está deshabilitado únicamente como ejemplo y para los fines de las tareas de este artículo.
Para deshabilitar ASP
Abra el Administrador de Internet Information Services (IIS) .
Haga doble clic en Restricciones de ISAPI y CGI.
Seleccione Páginas del servidor activo. En el panel Acciones , seleccione Denegar para deshabilitar ASP.
Habilitar seguimiento de solicitudes con error
Después de habilitar el seguimiento de solicitudes con error, debe configurar dónde residirán los archivos de registro. En esta tarea, habilitará el seguimiento de solicitudes con error para el sitio web predeterminado y especificará dónde colocar los archivos de registro. Después, configurará el error para el que se generarán registros de errores.
Paso 1: Habilitar el seguimiento de solicitudes con error para el sitio y configurar el directorio de archivos de registro
Abra un símbolo del sistema con derechos de usuario de administrador y vaya a %systemdrive%\windows\system32\inetsrv.
Ejecute
inetmgr
para abrir el Administrador de IIS.En el panel Conexiones , expanda el nombre del equipo, expanda Sitios y, a continuación, seleccione Sitio web predeterminado.
En el panel Acciones , en Configurar, seleccione Seguimiento de solicitudes con error.
En el cuadro de diálogo Editar configuración de seguimiento de solicitudes erróneas de sitio web, configure lo siguiente:
- Active la casilla Habilitar .
- Acepte los valores predeterminados para las demás configuraciones.
Seleccione Aceptar.
El registro de seguimiento de solicitudes con errores ahora está habilitado para el sitio web predeterminado. Compruebe el archivo %windir%\system32\inetsrv\config\applicationHost.config para confirmar que la configuración tiene el siguiente aspecto:
<system.applicationHost>
<sites>
<!-- site & app defaults -->
<site name="Default Web Site" id="1">
<!-- other site configuration -->
<traceFailedRequestsLogging enabled="true" />
</site>
</sites>
</system.applicationHost>
Paso 2: Configurar las definiciones de error
En este paso, configurará las definiciones de error para la dirección URL, incluidas las áreas que se van a realizar un seguimiento. Solucionará los problemas de una versión 404.2 devuelta por IIS para las solicitudes a las extensiones que aún no se han habilitado. Esto le ayuda a determinar qué extensiones concretas necesitará habilitar.
Abra un símbolo del sistema con derechos de usuario de administrador y vaya a %systemdrive%\windows\system32\inetsrv.
Ejecute
inetmgr
para abrir el Administrador de IIS.En el panel Conexiones , expanda el nombre del equipo, expanda Sitios y, a continuación, seleccione Sitio web predeterminado.
Haga doble clic en Reglas de seguimiento de solicitudes erróneas.
Seleccione Finalizar.
En el panel Acciones , seleccione Agregar.
En el asistente para Agregar regla de seguimiento de solicitudes erróneas, en la página Especificar contenido para seguimiento, seleccione Todo el contenido (*). Seleccione Siguiente.
En la página Definir condiciones de seguimiento, active la casilla Códigos de estado y escriba 404.2 como código de estado que se va a realizar el seguimiento.
Seleccione Siguiente.
En la página Seleccionar proveedores de seguimiento, en Proveedores, active la casilla SERVIDOR WWW . En Áreas, active la casilla Seguridad y desactive todas las demás casillas.
El problema que está generando hace que se produzca un evento de seguimiento de errores de seguridad. En general, los problemas de autenticación y autorización (incluidos los problemas de lista de restricciones de ISAPI) se pueden diagnosticar mediante la configuración del área de seguridad del servidor WWW para el seguimiento. Sin embargo, dado que la hoja de estilos FREB.xsl ayuda a resaltar errores y advertencias, todavía puede usar la configuración predeterminada para registrar todos los eventos en todas las áreas y proveedores. En Nivel de detalle, seleccione Detallado.
Seleccione Finalizar. Debería ver la siguiente definición del Sitio web predeterminado:
El Administrador de IIS escribe la configuración en el archivo %windir%\system32\inetsrv\config\applicationHost.config
con una etiqueta <location>
. La configuración debe tener el siguiente aspecto:
<location path="Default Web Site">
<system.webServer>
<tracing>
<traceFailedRequests>
<add path="*">
<traceAreas>
<add provider="WWW Server" areas="Security" verbosity="Verbose" />
</traceAreas>
<failureDefinitions statusCodes="404.2" />
</add>
</traceFailedRequests>
</tracing>
</system.webServer>
</location>
Prueba y visualización del archivo de registro de solicitudes de error
En esta tarea, generará una solicitud con error y verá el registro de seguimiento resultante. Ya configuró IIS para capturar registros de seguimiento para las solicitudes http://localhost/*.asp
que producen un error con un código de respuesta HTTP 404.2. Ahora compruebe que funciona.
Paso 1: Generar un error y el archivo de registro de solicitudes de error
Abra una nueva ventana de Internet Explorer.
Escriba la siguiente dirección:
http://localhost/test.asp
.Recibirá un error "Error HTTP 404.2- No encontrado".
Paso 2: Visualización del archivo de registro de solicitudes de error
Ahora que ha generado una solicitud con error, abra un símbolo del sistema con derechos de usuario de administrador y vaya a %systemdrive%\inetpub\logs\FailedReqLogFiles\W3SVC1.
Ejecute start para abrir una ventana de Internet Explorer desde el directorio.
Fíjese en algunas cosas aquí: cuando IIS escribe el archivo de registro de solicitudes erróneas, escribe un archivo para cada solicitud errónea. También se escribe una hoja de estilos freb.xsl para cada directorio. Esto ayuda a ver los archivos de registro de solicitudes de error resultantes (por ejemplo , fr000001.xml en este ejemplo).
Haga clic con el botón derecho en el archivo de registro del error 404.2 y seleccione Abrir con>Internet Explorer. Si es la primera vez que abre un archivo de seguimiento de solicitudes con error, debe agregar about:Internet a la lista de sitios de confianza, ya que la configuración de seguridad mejorada de Internet Explorer está habilitada de forma predeterminada. Si es así, verá lo siguiente:
En el cuadro de diálogo Internet Explorer , seleccione Agregar... para agregar about:Internet a la lista de sitios de confianza. Esto permite que la XSL funcione. Verá lo siguiente después de agregar about:Internet a la lista de sitios de confianza:
Un resumen de la solicitud con error se registra en la parte superior, con la tabla Errores y advertencias que identifica los eventos que son WARNING, ERROR o CRITICAL ERROR en Gravedad. En este ejemplo, el nivel de gravedad WARNING se debe a ISAPI RESTRICTION. La imagen que intentó cargar era %windir%\system32\inetsrv\asp.dll.
Abra el archivo XML sin formato directamente con un editor de texto y examine el contenido de cada evento.
Resumen
Ha completado dos tareas: ha configurado el seguimiento de solicitudes con error para capturar seguimientos de cualquier solicitud que IIS devuelva con un código de estado 404.2 y comprobar que IIS capturó el seguimiento para la solicitud. También ha comprobado que el archivo de registro de freb.xml no contenía ninguna otra solicitud de las solicitudes realizadas porque las solicitudes no tenían código de devolución 404.2. Al consultar el archivo de registro de errores, determinó que la causa del error era que la extensión estaba deshabilitada para esa solicitud. Puede probar otras páginas no HTML (como .gif o archivos .jpg) y tener en cuenta que el archivo de registro no agrega estos seguimientos. También puede cambiarlo fácilmente a 404 o capturar el error si la solicitud tarda más de 30 segundos si establece el campo timeTaken en failureDefinitions.
Restauración de la copia de seguridad
Ahora que ha completado las tareas de este artículo, puede restaurar la copia de seguridad de la configuración. Ejecute el siguiente comando con derechos de usuario administrador:
%windir%\system32\inetsrv\appcmd restore backup cleanInstall