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 las 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é ocurre 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 de 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 erróneas en el servidor IIS. Para obtener información sobre cómo hacerlo con aplicaciones web de Azure, consulte Solución de problemas de una aplicación en Azure App Service mediante Visual Studio.

El seguimiento de solicitudes con errores está diseñado para almacenar en búfer los eventos de seguimiento de una solicitud y solo vaciarlos en el disco si se produce un error en la solicitud, donde se proporciona la definición de "error". Si quiere saber por qué recibe mensajes de error 404.2 o que la solicitud empieza a colgarse, use Seguimiento de solicitudes con errores.

Las tareas que se muestran en este artículo incluyen:

  • Habilitación del módulo Seguimiento de solicitudes con errores.
  • Configuración de la semántica de archivos de registro de seguimiento de solicitudes erróneas.
  • Definición de la dirección URL para la que se deben mantener los seguimientos de solicitudes con errores, incluidas las definiciones de error y las áreas de seguimiento.
  • Generar la condición de error y ver el 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 instalar también las siguientes características:

  • ASP.NET (en World Wide Web Services - Application Development Features - ASP.NET)
  • Seguimiento (en Seguimiento demantenimiento y diagnóstico - de World Wide Web Services - )

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 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.

Realizar 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:

  1. Seleccione Iniciar>todos los accesorios de programas>.

  2. Haga clic con el botón derecho en Símbolo del sistema y seleccione Ejecutar como administrador.

    Captura de pantalla que muestra el menú contextual del símbolo del sistema, con Ejecutar como administrador seleccionado.

  3. En un símbolo del sistema, ejecute el siguiente comando:

    %windir%\system32\inetsrv\appcmd add backup cleanInstall
    

Creación de contenido de ejemplo

  1. Vaya a %systemdrive%\inetpub\wwwroot.

  2. Mueva el contenido a una ubicación segura (en caso de que desee restaurar el contenido existente) o elimínelo.

  3. Cree un archivo en blanco y asígnele el nombre test.asp.

  4. En el símbolo del sistema, vaya al archivo test.aspen \inetpub\wwwroot.

  5. 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 solo se deshabilita como ejemplo y a efectos de las tareas de este artículo.

Para deshabilitar ASP

  1. Abra el Administrador de Internet Information Services (IIS).

  2. Haga doble clic en Restricciones de ISAPI y CGI.

    Captura de pantalla que muestra el administrador de I S con I S A P I y C G I Restrictions seleccionados.

  3. Seleccione Páginas de Active Server. En el panel Acciones , seleccione Denegar para deshabilitar ASP.

    Captura de pantalla que muestra el panel I S A P I y C G I Restrictions and Actions (Restricciones y acciones de I S A P I y C G I) abierto.

Habilitación del seguimiento de solicitudes con errores

Después de habilitar el seguimiento de solicitudes con errores, debe configurar dónde residirán los archivos de registro. En esta tarea, habilitará El seguimiento de solicitudes con errores para el sitio web predeterminado y especificará dónde colocar los archivos de registro. A continuación, configurará el error para el que se generarán los registros de errores.

Paso 1: Habilitar el seguimiento de solicitudes con error para el sitio y configurar el directorio de archivos de registro

  1. Abra un símbolo del sistema con derechos de usuario de administrador y vaya a %systemdrive%\windows\system32\inetsrv.

  2. Ejecute inetmgr para abrir el Administrador de IIS.

  3. En el panel Connections, expanda el nombre de la máquina, expanda Sitios y, a continuación, seleccione Sitio web predeterminado.

  4. En el panel Acciones , en Configurar, seleccione Seguimiento de solicitudes con error.

    Captura de pantalla que muestra El seguimiento de solicitudes con errores en Configurar.

  5. En el cuadro de diálogo Editar configuración de seguimiento de solicitudes con error del sitio web , configure lo siguiente:

    • Active la casilla Habilitar .
    • Mantenga los valores predeterminados de la otra configuración.

    Captura de pantalla que muestra el cuadro de diálogo Editar configuración de seguimiento de solicitudes con error del sitio web, con Habilitar seleccionado.

  6. Seleccione Aceptar.

El registro de seguimiento de solicitudes con error 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 de la dirección URL, incluidas las áreas de seguimiento. Solucionará problemas de una versión 404.2 devuelta por IIS para las solicitudes a extensiones que aún no se han habilitado. Esto le ayuda a determinar qué extensiones concretas necesitará habilitar.

  1. Abra un símbolo del sistema con derechos de usuario de administrador y vaya a %systemdrive%\windows\system32\inetsrv.

  2. Ejecute inetmgr para abrir el Administrador de IIS.

  3. En el panel Connections, expanda el nombre de la máquina, expanda Sitios y, a continuación, seleccione Sitio web predeterminado.

  4. Haga doble clic en Reglas de seguimiento de solicitudes con error.

    Captura de pantalla que muestra el panel Inicio del sitio web predeterminado y se selecciona Reglas de seguimiento de solicitudes erróneas.

  5. Seleccione Finalizar.

  6. En el panel Acciones , seleccione Agregar.

  7. En el Asistente para agregar reglas de seguimiento de solicitudes erróneas , en la página Especificar contenido para seguimiento , seleccione Todo el contenido (*). Seleccione Siguiente.

    Captura de pantalla que muestra el Asistente para agregar reglas de seguimiento de solicitudes con error, con todo el contenido seleccionado.

  8. En la página Definir condiciones de seguimiento , active la casilla Códigos de estado y escriba 404.2 como el código de estado que se va a realizar el seguimiento.

    Captura de pantalla que muestra la página Definir condiciones de seguimiento. El código de estado se selecciona con 404 punto 2 en el campo Código de estado.

  9. Seleccione Siguiente.

  10. 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 WWW Server - Security para el seguimiento. Sin embargo, dado que la hoja de estilos FREB.xsl ayuda a resaltar errores y advertencias, puede seguir usando la configuración predeterminada para registrar todos los eventos en todas las áreas y proveedores. En Verbosity, seleccione Verbose.

    Captura de pantalla que muestra la página Seleccionar proveedores de seguimiento. W W W Server está seleccionado en Proveedores y Seguridad está seleccionado en Detallado.

  11. Seleccione Finalizar. Debería ver la siguiente definición para el sitio web predeterminado:

    Captura de pantalla que muestra el panel Reglas de seguimiento de solicitudes erróneas. W W W Server aparece en Proveedores asociados.

El Administrador de IIS escribe la configuración en el %windir%\system32\inetsrv\config\applicationHost.config archivo mediante una <location> etiqueta. 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 ha configurado IIS para capturar registros de seguimiento para http://localhost/*.asp las solicitudes que producen un error con un código de respuesta HTTP de 404.2. Ahora compruebe que funciona.

Paso 1: Generar un error y el archivo de registro de solicitud de error

  1. Abra una nueva ventana de Internet Explorer.

  2. Escriba la siguiente dirección: http://localhost/test.asp.

  3. Obtiene un error "Error HTTP 404.2 - No encontrado".

    Captura de pantalla que muestra una página web titulada Error del servidor en el sitio web predeterminado de la aplicación. En Resumen de errores, dice H T T P Error 404 punto 2 No encontrado.

Paso 2: Ver el archivo de registro de solicitudes de error

  1. Ahora que ha generado una solicitud con errores, abra un símbolo del sistema con derechos de usuario de administrador y vaya a %systemdrive%\inetpub\logs\FailedReqLogFiles\W3SVC1.

  2. Ejecute Start para iniciar una ventana de Internet Explorer desde el directorio.

    Captura de pantalla que muestra Internet Explorer navegando a la ruta de acceso W 3 S V C 1. Se enumeran dos archivos, freb y f r 0 0 0 0 0 1.

  3. Observe algunas cosas aquí: cuando IIS escribe el archivo de registro de solicitudes con errores, escribe un archivo por solicitud con error. También se escribe una hoja de estilos freb.xsl , una por directorio. Esto ayuda a ver los archivos de registro de solicitudes de error resultantes (por ejemplo ,fr000001.xml en este ejemplo).

  4. 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 errores, 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:

    Captura de pantalla que muestra un cuadro de diálogo para La configuración de seguridad mejorada de Internet Explorer. Internet de dos puntos está bloqueado.

  5. En el cuadro de diálogo Internet Explorer , seleccione Agregar... para agregar about:internet a la lista de sitios de confianza. Esto permite que el XSL funcione. Verá lo siguiente después de agregar about:internet a la lista de sitios de confianza:

    Captura de pantalla que muestra Internet Explorer. La pestaña Resumen de la solicitud está seleccionada y se muestran dos advertencias.

    En la parte superior se registra un resumen de la solicitud con errores, con la tabla Errores & 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.

  6. Abra el archivo XML sin procesar directamente mediante un editor de texto y examine el contenido de cada evento.

Resumen

Ha completado dos tareas: configuró El seguimiento de solicitudes con errores para capturar seguimientos de cualquier solicitud que IIS devuelva con un código de estado 404.2 y ha comprobado que IIS capturó el seguimiento de la solicitud. También ha comprobado que el archivo de registro defreb.xml no contenía ninguna otra solicitud para las solicitudes que realizó porque las solicitudes no tenían un código devuelto 404.2. Al consultar el archivo de registro de errores, determinó que la causa del error era que la extensión se deshabilitó para esa solicitud. Puede probar otras páginas que no sean 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 estableciendo 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 de administrador:

%windir%\system32\inetsrv\appcmd restore backup cleanInstall