Estrategias de recopilación de datos para solucionar problemas comunes relacionados con IIS Web Server en Windows Server

El servidor web de IIS permite a los administradores, propietarios de sitios y propietarios de aplicaciones web un amplio conjunto de posibilidades para generar telemetría y métricas sobre el rendimiento de las aplicaciones web hospedadas: desde los registros de solicitudes iis, hasta el seguimiento de registros de solicitudes con errores, las entradas del visor de eventos y muchas más. Estos fragmentos de telemetría se pueden dispersar en varios lugares del servidor de Windows que ejecuta IIS y los recopila todos cuando se solucionan problemas que pueden llevar mucho tiempo, especialmente si el número de aplicaciones hospedadas es grande. El equipo de soporte técnico de IIS ha construido una herramienta para ayudar con esta tarea específica: LogCather es una herramienta que permite la recopilación de datos relacionados con la telemetría y la configuración de IIS en una ubicación centralizada, lo que permite a los administradores dirigirse a todo el servidor o solo a un subconjunto de las aplicaciones hospedadas y definir un período de tiempo para el que se recopilarán los datos.

Síntomas

Los problemas de conexión se producen al ejecutar ASP.NET, ASP.NET Core u otros tipos de sitios web y aplicaciones web en un servidor web iis que se ejecuta en Windows Server.

Nota

Las versiones compatibles actualmente de Windows Server son Windows Server 2019, Windows Server 2016, Windows Server 2012 R2 y Windows Server 2012.

En este artículo se describen las estrategias de recopilación de datos para solucionar problemas comunes relacionados con el servidor web de IIS.

Problemas de certificados de servidor SSL y SSL

Cuando se conecta a un sitio web hospedado por IIS a través de HTTPS, el servidor y el cliente (explorador web) negocian una conexión de seguridad de capa de transporte (TLS) entre ellos.

Nota

TLS es la versión actualizada de la tecnología de capa de sockets seguros (SSL), aunque "SSL" sigue siendo actualmente el término más común para los certificados de seguridad.

Durante la negociación, IIS entrega un certificado de servidor al cliente de conexión. Es posible que el certificado devuelto no sea el certificado esperado y es posible que no sea de confianza para el cliente. Esto impide que el cliente pueda completar la conexión al servidor web a través de TLS.

Excepciones y errores en tiempo de ejecución, incluidos los códigos de estado HTTP 4 xx y 5 xx

Al obtener acceso a determinados recursos en aplicaciones web hospedadas en IIS o realizar determinadas acciones mientras explora estos sitios, las aplicaciones web o sitios web de IIS producen errores de forma aleatoria o coherente. Puede recibir mensajes de error de código de estado "500" ("error de servidor interno") que informan de varias excepciones de error en la ejecución del código del lado servidor para el sitio web. También puede recibir mensajes de error de código de estado "400" ("solicitud mala") que se devuelven cuando accede a servicios web como ASP.NET Web API y está intentando enviar datos a un extremo de servicio web. También pueden producirse solicitudes de autenticación inesperadas o solicitudes de "acceso denegado" representadas por los códigos de estado "401" y "403".

Problemas de asignación de controladores

Las solicitudes que se envían al servidor web se asignan a un controlador específico (por ejemplo: controlador .NET administrado) y se registran mediante una aplicación web que se implementa en el servidor. El controlador procesa las solicitudes y devuelve una respuesta HTTP. Algunas solicitudes se pueden enrutar al controlador inesperado. Por ejemplo, las solicitudes terminan siendo ejecutadas por el controlador incorrecto (como el controlador de archivos estáticos) y esto desencadena un código de estado 403.14 ("no se permite una solicitud de lista de directorios").

Problema de redirección HTTP

Un sitio web o aplicación web no redirige a los usuarios que tienen acceso al sitio web a través de una conexión no segura a un canal cifrado (a través de TLS). O bien, los redireccionamientos de determinadas solicitudes o recursos a direcciones URL más recientes no devuelven el contenido esperado. Este problema se produce porque el cliente se redirige constantemente entre dos páginas hasta que el explorador muestra un mensaje de error o porque el servidor IIS redirige incorrectamente al cliente.

Errores en la consola de administración de IIS

Cuando accede a la configuración del sitio web o de la aplicación web a través de la consola del Administrador de IIS, recibe mensajes de error que indican una configuración incorrecta o no válida. No puede acceder a determinadas partes de la configuración del sitio web (por ejemplo: configuración de autenticación, módulos registrados o controladores). Además, el Administrador de IIS deja de responder cuando intenta iniciarlo o cuando intenta conectarse a un sitio web específico.

Problemas de extensiones, herramientas y complementos de IIS

Cuando se agrega una extensión iis, como solicitud de aplicación y enrutamiento (ARR), a un servidor web para convertir el servidor web en un equilibrador de carga o un proxy inverso, las solicitudes que se envían al servidor que ejecuta IIS provocan un comportamiento inesperado. Por ejemplo, se devuelve un código de estado "500" o "400" o las respuestas contienen contenido incorrecto.

Problemas del servicio FTP

El servicio FTP es una parte importante del servidor web de IIS. Permite a los usuarios cargar o descargar archivos grandes a través de conexiones FTP (protocolo de transferencia de archivos) o conexiones FTPS (seguras). Cuando usa un servidor FTP para IIS para enumerar, descargar o cargar archivos, recibe códigos de estado "5 xx"(por ejemplo: un código de estado FTP "550" que indica que no se ha ejecutado un comando determinado que se envió al servidor).

Problemas de configuración de la granja de servidores

Cuando se ejecuta una aplicación web o un sitio web en una granja de servidores que consta de varios servicios IIS, se producen problemas cuando las solicitudes posteriores del mismo usuario (cliente) se enrutan a distintos servidores de la granja de servidores. Estos errores van desde solicitudes que se rechazan y generan códigos de estado "4 xx" hasta errores de servidor como los códigos de estado "5 xx". Estos errores pueden deberse a incoherencias en la configuración de los servidores de la granja de servidores.

Solución

Cuando informe de estos tipos de problemas al Soporte técnico de Microsoft, debe proporcionar todos los datos de telemetría necesarios para diagnosticar el problema. Si se produce un problema en un servidor de producción, una estrategia de recopilación de datos completa y a tiempo permitirá un tiempo de resolución más rápido. Use la herramienta LogCatcher de Microsoft para la recopilación automatizada de datos para recopilar datos de telemetría más rápidos y coherentes de todos los datos necesarios del servidor web. Los agentes de soporte técnico de Microsoft le pedirán que descargue la herramienta de su repositorio GitHub () e instálla.

La pantalla de bienvenida de LogCatcher proporciona instrucciones para su uso. La interfaz de usuario es similar a la siguiente captura de pantalla.

Captura de pantalla de recopilación de datos en el receptor de registros.

En la parte inferior de la ventana principal, LogCatcher muestra una lista de sitios web hospedados en el servidor en el que se ejecuta la herramienta, así como los grupos de aplicaciones correspondientes y la ubicación de contenido de cada sitio web.

Para filtrar los datos recopilados desde el sistema, recopile datos de solo un subconjunto de sitios web de la lista y solo durante una duración determinada (expresado en número de días contando hacia atrás a partir de hoy). Puede usar los cuadros de texto De sitios y Antigüedad de registros, respectivamente.

Determine los filtros que desea aplicar, a qué sitios web aplicarlos y durante qué período de tiempo deben recopilarse los datos. A continuación, presione el botón GENERAR ZIP e inicie el proceso de recopilación de registros. La barra de estado se vuelve verde cuando se completa la recopilación de datos para confirmar que todos los registros necesarios se recopilaron y comprimían en un archivo .zip datos. La barra de estado también proporciona la ubicación del archivo.

Captura de pantalla de generación de datos en el receptor de registros.

Windows Explorador de archivos abre automáticamente la carpeta donde se guardó el archivo de registro comprimido.

LogCatcher recopila la siguiente información:

  • Los archivos de configuración de IIS (ubicados en C:\WINDOWS\system32\inetsrv\config)
  • Los HTTP.sys (ubicados en C:\Windows\System32\LogFiles\HTTPERR)
  • Registros de eventos System, Application, Security, Setup, Microsoft-IIS-Configuration y CAPI2.
  • Los archivos de registro de IIS para los sitios seleccionados.
  • Seguimientos de solicitud con errores para los sitios seleccionados.

LogCatcher no carga automáticamente ninguno de los archivos de archivo generados en los servidores de Microsoft. La herramienta solo automatiza la recopilación de datos. Puede inspeccionar el contenido del archivo .zip que genera la herramienta para ver qué datos se recopilaron o puede cargar el archivo en Microsoft para su análisis.

Si tiene que recopilar registros de varios servidores y no desea hacer clic en la interfaz de usuario de generación de datos cada vez, o si está más cómodo con la línea de comandos, ejecute la herramienta directamente desde PowerShell. Para obtener más información acerca de cómo hacerlo, ejecute el comando Get-Help.

A continuación se muestran ejemplos de cómo ejecutar la herramienta desde la CLI de PowerShell, incluidos los parámetros posibles.

-------------------------- EXAMPLE 1 --------------------------
PS C:\>     .\LogCatcher.ps1

Este comando inicia LogCatcher con la interfaz de usuario.

-------------------------- EXAMPLE 2 --------------------------
PS C:\> .\LogCatcher.ps1 -Quiet $true -ZipLocation "C:\Temp"

Este comando inicia LogCatcher con la CLI y establece una ubicación .zip personalizada para la generación de archivos.

-------------------------- EXAMPLE 3 --------------------------
PS C:\> .\LogCatcher.ps1 -Quiet $true -LogAge 45 -SiteIds "1,2,3,4"

Este comando indica la antigüedad máxima de todos los registros que se recopilarán y los identificadores de IIS para cada sitio para el que deben recopilarse los registros.

Más información

Para obtener más información acerca de la herramienta LogCatcher, vea este artículo de blog de LogCatcher.