Solución de problemas de solicitudes con errores mediante el seguimiento en IIS 8.5

Se aplica a: Internet Information Services 8.5

Introducción

El seguimiento basado en solicitudes está disponible tanto en servidores IIS independientes como en sitios web de Microsoft Azure (WAWS). Si puede reproducir el problema que está experimentando, el seguimiento basado en solicitudes proporciona una manera de determinar qué sucede exactamente con las solicitudes y por qué está ocurriendo. Problemas como un rendimiento deficiente en algunas solicitudes, 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 erróneas en el servidor IIS. Para obtener información sobre cómo hacerlo con sitios web de Microsoft Azure, consulte Solución de problemas de una aplicación en Azure App Service mediante Visual Studio.

El seguimiento de solicitudes con error 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é las solicitudes devuelven un código de estado HTTP específico, por ejemplo, 401 o 404, o si una solicitud tarda un tiempo en procesarse o no responde, puede usar seguimiento de solicitudes con errores.

Las tareas que se explican 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

Instale IIS 8.5 antes de poder realizar las tareas descritas en este artículo. Vaya a http://localhost/ y compruebe que se muestra la pantalla de presentación de Internet Information Services. Si IIS no está instalado, consulte Instalación de IIS 8.5 en Windows Server 2012 R2 para obtener instrucciones de instalación. Al instalar IIS, asegúrese de instalar también las siguientes características:

  • ASP.NET 3.5 (en Servidor web (IIS)/Características/ de desarrollo de aplicaciones del servidor/ webASP.NET 3.5)
  • ASP.NET 4.5 (en Web Server (IIS)/Características de desarrollo de aplicaciones/ del servidor/ webASP.NET 4.5)
  • Seguimiento (en Servidor web (IIS)/Estado y diagnósticodel servidor/ web: seguimiento)

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 de administradores no le concede derechos de usuario de administrador completos de forma predeterminada. Para ejecutar aplicaciones como administrador, haga clic con el botón derecho en el icono de la aplicación y seleccione Ejecutar como administrador.

Realizar una copia de seguridad

Realice una copia de seguridad de los archivos de configuración antes de realizar las tareas siguientes:

  1. Seleccione la clave del logotipo de Windows y la tecla X simultáneamente, seleccione Símbolo del sistema (Administración) y, a continuación, seleccione .

    Captura de pantalla del símbolo del sistema Administración en la barra de tareas de Windows.

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

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

    Este comando crea una carpeta cleanInstall que contiene archivos de configuración de copia de seguridad en %windir%\system32\inetsrv\backup.

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, siga estos pasos:

  1. Abra el Administrador de IIS y seleccione el servidor.

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

    Captura de pantalla del panel I S Manager que muestra las restricciones de I S A P I y C G I seleccionadas.

  3. En el panel Restricciones de ISAPI y CGI , seleccione Páginas de servidor activo. En el panel Acciones , seleccione Denegar para deshabilitar ASP. Las páginas de Active Server se mostrarán como No permitidas.

    Captura de pantalla del panel Restricciones de I S A P I y C G I que muestra las páginas de Active Server seleccionadas. La opción Denegar está seleccionada en el panel Acciones.

Habilitación del seguimiento de solicitudes con errores

Después de habilitar el seguimiento de solicitudes con errores, debe configurar la ruta de acceso de los archivos de registro. En esta sección, habilitará El seguimiento de solicitudes con errores para el sitio web predeterminado y especificará dónde almacenar los archivos de registro y, a continuación, configurará el error para el que se generarán los registros de error.

Paso 1: Habilitar el seguimiento de solicitudes con error para el sitio y configurar el directorio del archivo 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 erróneas....

    Captura de pantalla del panel Acciones en la que se muestra la opción Seguimiento de solicitudes erróneas resaltada en la pestaña Configurar.

  5. En el cuadro de diálogo Editar configuración de seguimiento de solicitudes erróneas 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 erróneas del sitio web con el campo Directorio rellenado de comandos y la casilla Habilitar seleccionada.

  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>
       <!-- other system configuration --> 
       <sites> 
          <site name="Default Web Site" id="1"> 
             <!-- other site configuration --> 
             <traceFailedRequestsLogging  enabled="true" /> 
          </site> 
          <!-- site & app defaults --> 
          <!-- other sites configuration --> 
       </sites> 
       <!-- other system configuration --> 
    </system.applicationHost>
    

Paso 2: Configurar las definiciones de error

En este paso, configure las definiciones de error de la dirección URL, incluidas las áreas de seguimiento. Solucionará problemas de un código de estado 404.2 devuelto por IIS para las solicitudes a extensiones que aún no se han habilitado. Le ayuda a determinar qué extensiones concretas necesita habilitar. Para obtener más información, vea Códigos de estado HTTP en IIS.

  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 del panel Inicio del sitio web predeterminado que muestra la característica Reglas de seguimiento de solicitudes erróneas seleccionada.

  5. En el panel Acciones , seleccione Agregar....

  6. En el Asistente para agregar reglas de seguimiento de solicitudes erróneas , en la página Especificar contenido para seguimiento , seleccione Todo el contenido (*) y, a continuación, seleccione Siguiente.

    Captura de pantalla que muestra el Asistente para agregar reglas de seguimiento de solicitudes erróneas. La opción Todo el contenido está seleccionada en la página Especificar contenido para seguimiento.

  7. 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 de Agregar regla de seguimiento de solicitudes erróneas que muestra la página Definir condiciones de seguimiento y 404 punto 2 especificado como código de estado.

  8. Seleccione Siguiente.

  9. En la página Seleccionar proveedores de seguimiento , en Proveedores, active la casilla Servidor WWW y desactive todas las demás casillas. 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.

  10. En Verbosity, seleccione Verbose.

    Nota:

    Al instalar el servicio de rol Seguimiento, IIS instala los proveedores de seguimiento de extensión WWW Server, ASP e ISAPI de forma predeterminada. Si instala ASP.NET 2.0 o posterior, IIS agrega automáticamente el proveedor de seguimiento de ASPNET. El paquete del instalador de Enrutamiento de solicitudes de aplicación (ARR) instala otros proveedores, que también instala el módulo Url Rewrite, Web Farm Management y External Cache. Puede agregar más proveedores de seguimiento mediante el <add> elemento dentro del <traceProviderDefinitions> elemento .

    Captura de pantalla del Asistente para agregar reglas de seguimiento de solicitudes erróneas en la que se muestra el servidor WWW seleccionado en la lista Proveedores y La seguridad que se selecciona en el menú Áreas.

  11. Seleccione Finalizar.

  12. Verá la siguiente definición para el sitio web predeterminado:

    Captura de pantalla de la página Reglas de seguimiento de solicitudes erróneas que muestra el servidor WWW especificado como proveedor asociado y el punto 404 2 como código de estado.

    El Administrador de IIS escribe la configuración en el %systemdrive%\inetpub\wwwroot\web.config archivo mediante una <location> etiqueta. La configuración debe volver a semblar lo siguiente:

    <configuration> 
        <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> 
    </configuration>
    

Prueba y visualización del archivo de registro de solicitudes de error

Esta sección le ayuda a generar una solicitud con error y a 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. http://localhost/test.asp Escriba y presione ENTRAR. Se muestra el mensaje de error "Error HTTP 404.2 - No encontrado".

    Captura de pantalla de la ventana de Internet Explorer en la que se muestra el error H T T P Error 404 punto 2, página de mensaje No encontrado.

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

  1. Ahora que ha generado una solicitud con errores, abra el Explorador de Windows y vaya a %systemdrive%\inetpub\logs\FailedReqLogFiles\W3SVC1.

    Captura de pantalla de la carpeta W 3 S V C 1 en el directorio req log files con error.

    Nota:

    Cuando IIS escribe el archivo de registro de solicitudes con error, 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).

  2. 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 del cuadro de diálogo Internet Explorer con la opción Continuar para preguntar cuándo se bloquea el contenido del sitio web seleccionada.

  3. En el cuadro de diálogo Internet Explorer , agregue about:internet a la lista de sitios de confianza siguiendo estos pasos:

    1. Seleccione el menú Herramientas y, a continuación, seleccione Opciones de Internet.
    2. Seleccione la ficha Seguridad.
    3. Seleccione Zona de confianza y, después, Sitios.
    4. Esto permite que el XSL funcione.
  4. Verá una página de resumen de solicitudes después de agregar about:internet a la lista de sitios de confianza:

    Captura de pantalla de la página Resumen de solicitudes con la tabla Errores y advertencias que muestra las columnas Gravedad, Evento y Nombre del módulo.

    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, ERRORo CRITICAL ERROR en gravedad. En este ejemplo, el WARNING nivel de gravedad se debe a LA RESTRICCIÓN DE ISAPI. La imagen que intentó cargar era %windir%\system32\inetsrv\asp.dll.

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

Resumen

Ha completado dos tareas: configurar el seguimiento de solicitudes con errores para capturar seguimientos de cualquier solicitud que IIS devuelva con un código de estado 404.2 y comprobar que IIS capturó el seguimiento de la solicitud. También ha comprobado que el archivo de registro defreb.xml no contenía ninguna solicitud distinta de aquellas con un código de retorno 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 archivos .gif o .jpg) y tener en cuenta que el archivo de registro no agrega estos seguimientos. También puede cambiar fácilmente este evento 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