Registro de errores en las APIs de HTTP

IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.

Haga clic aquí para ver el artículo original (en inglés): 820729
Resumen
Este artículo describe las capacidades de registro de errores de HTTP APIs.

Algunos errores que se producen en una aplicación basada en HTTP son controladas automáticamente por la API de HTTP en lugar de volver a pasar a una aplicación para el control. Este comportamiento se produce porque la frecuencia de dichos errores podría saturar un registro de eventos o un controlador de la aplicación.

Los temas siguientes describen los distintos aspectos del registro de errores de la API HTTP.
  • Configurar errorlogging de la API HTTP
    Configuración del Registro controla la API HTTP registra los errores, themaximum permite el tamaño de los archivos de registro y la ubicación de los archivos de registro.
  • Inicia el formato de la HTTP APIerror
    La API HTTP crea archivos de registro que cumplen con las convenciones de archivo de registro de Wide Web Consortium (W3C) el país. Puede utilizar herramientas estándar para analizar estos archivos de registro. Sin embargo, a diferencia de los archivos de registro de W3C, archivos de registro de la API HTTP no notcontain los nombres de las columnas.
  • Tipos de errores que registra la API HTTP
    La API HTTP registra muchos errores comunes.
Solución

Configurar el registro de errores de la API HTTP

Tres valores del registro en la clave HTTP \Parameters controlan el registro de error de la API HTTP. Estas claves se encuentran en la siguiente clave del registro:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
Nota: La ubicación y el formato de los valores de configuración pueden cambiar en versiones posteriores del sistema operativo Windows.

Debe tener credenciales de administrador o el sistema Local para cambiar los valores del registro y para ver o cambiar los archivos de registro y la carpeta que los contiene.

Información de configuración en los valores del registro se lee cuando se inicia el controlador de la API HTTP. Por lo tanto, si cambia la configuración, debe detener y reiniciar el controlador para leer los nuevos valores. Para ello, escriba los siguientes comandos de consola:
net stop http
Net start http
La convención de nomenclatura siguiente se utiliza para denominar los archivos de registro:
httperr + número de secuencia + .log
Ejemplo: httperr4.log
Archivos de registro el ciclo cuando alcanzan el tamaño máximo del valor del registro ErrorLogFileTruncateSize . Este valor no puede ser inferior a 1 megabyte (MB).

Si la configuración del registro de errores no es válida, o si cualquier tipo de error se produce cuando la API HTTP está escribiendo en los archivos de registro, la API HTTP utiliza el registro de sucesos para notificar a los administradores que no se está produciendo el registro de errores.

La tabla siguiente describe los valores de configuración del registro.
Valor del registroDescripción
EnableErrorLoggingDWORD que puede establecer en TRUE para habilitar el registro de errores o en FALSE para deshabilitarlo. El valor predeterminado es TRUE.
ErrorLogFileTruncateSizeDWORD que especifica el tamaño máximo de un archivo de registro de errores, en bytes. El valor predeterminado es un MB (0 x 100000).

Nota: El valor especificado no puede ser menor que el valor predeterminado.
ErrorLoggingDirUna cadena que especifica la carpeta en la que la API HTTP coloca los archivos de registro.

La API HTTP crea una subcarpeta HTTPERR en la carpeta especificada y, a continuación, almacena los archivos de registro en la subcarpeta. Esta subcarpeta y los archivos de registro reciben la misma configuración de permisos. El administrador y cuentas del sistema Local tienen acceso total. Otros usuarios no tienen acceso.

La siguiente es la carpeta predeterminada cuando no se especifica la carpeta en el registro:
%SystemRoot%\system32\LogFiles

Nota: El valor de la cadena ErrorLoggingDir debe ser una ruta local. Sin embargo, puede contener % SystemRoot %. No se puede utilizar una unidad de red o un recurso compartido de red.

Volver al principio

Formato de los registros de error de la API HTTP

Generalmente, los archivos de registro de error de API HTTP tienen el mismo formato como registros de errores de W3C, excepto que los archivos de registro de error de API HTTP no tienen encabezados de columna. Cada línea de un registro de errores de la API HTTP registra un error. Los campos aparecen en un orden específico. Un carácter de espacio único (0 x 0020) separa cada campo desde el campo anterior. En cada campo, el signo más (0x002B) Reemplazar espacios, tabuladores y caracteres de control no imprimible.

La tabla siguiente identifica los campos y el orden de los campos de un registro de error.
CampoDescripción
FechaEl campo fecha sigue el formato de W3C. Este campo se basa en la hora Universal coordinada (UTC). El campo fecha tiene siempre diez caracteres en forma de aaaa-MM-DD. Por ejemplo, el 1 de mayo de 2003 se expresa como 2003-05-01.
HoraEl campo hora sigue el formato de W3C. Este campo se basa en la hora UTC. El campo hora tiene siempre ocho caracteres en forma de MM:HH:SS. Por ejemplo, 5:30 P.M. (UTC) se expresa como 17:30:00.
Dirección IP del clienteLa dirección IP del cliente afectado. El valor en este campo puede ser una dirección IPv4 o una dirección IPv6. Si la dirección IP es una dirección IPv6, en la dirección se incluye también el campo ScopeId.
Puerto de clienteEl número de puerto del cliente afectado.
Dirección IP del servidorLa dirección IP del servidor afectado. El valor en este campo puede ser una dirección IPv4 o una dirección IPv6. Si la dirección IP del servidor es una dirección IPv6, en la dirección se incluye también el campo ScopeId.
Puerto del servidorEl número de puerto del servidor afectado.
Versión de protocoloLa versión del protocolo que se utiliza.

Si la conexión no se ha analizado suficientemente paradeterminar la versión del protocolo, se utiliza un guión (0x002D) como un placeholderfor el campo vacío.

Si el número de versión principal o el número de versión secundaria es analiza isgreater que o igual a 10, la versión se registra como HTTP /?.?.
VerboEstado del verbo que la última solicitud había analizada pasadas. Se incluyen los verbos desconocidos, pero cualquier verbo que es más de 255 bytes se trunca en esta longitud. Si un verbo no está disponible, se utiliza un guión (0x002D) como marcador de posición del campo vacío.
CookedURL + ConsultaLa dirección URL y cualquier consulta asociada se registran como un campo separado por un signo de interrogación (0x3F). Este campo se trunca en su longitud límite de 4096 bytes.

Si esta dirección URL se ha analizado ("cooked"), se registra con conversión de página de código local y se trata como campo Unicode.

Si esta dirección URL no se ha analizado ("cooked") en thetime de inicio de sesión, se copia exactamente, sin conversión Unicode.

Si la API HTTP no puede analizar esta dirección URL, un hyphen(0x002D) se utiliza como un marcador de posición del campo vacío.
Estado del protocoloEl estado del protocolo no puede ser mayor que 999.

Si el estado del protocolo de la respuesta a un requestis disponible, se registra en este campo.

Si el estado del protocolo no está disponible, un hyphen(0x002D) se utiliza como un marcador de posición del campo vacío.
Id. de sitioNo se utiliza en esta versión de la API HTTP. En este campo aparece siempre un guión (0x002D) de marcador de posición.
Frase de motivoEste campo contiene una cadena que identifica el tipo de error que se está registrando. Este campo no se deja vacío nunca.
Nombre de la colaEste nombre de cola de solicitudes.
Las siguientes líneas de ejemplo proceden de un registro de errores de la API HTTP:
2002-07-05 18:45:09 172.31.77.6 2094 172.31.77.6 80 HTTP/1.1 GET /qos/1kbfile.txt 503 – ConnLimit 2002-07-05 19:51:59 127.0.0.1 2780 127.0.0.1 80 HTTP/1.1 GET /ThisIsMyUrl.htm 400 – Hostname 2002-07-05 19:53:00 127.0.0.1 2894 127.0.0.1 80 HTTP/2.0 GET / 505 - Version_N/S 2002-07-05 20:06:01 172.31.77.6 Timer_MinBytesPerSecond 80-----64388 127.0.0.1
Volver al principio

Tipos de errores que registra la API HTTP

La API HTTP registra las repuestas de error a los clientes, los tiempos de espera de conexión, las solicitudes huérfanas y las conexiones interrumpidas que no se controlan correctamente.

La lista siguiente identifica los tipos de errores que registra la API HTTP:
  • Respuestas a los clientes La API HTTP envía una respuesta de error a un cliente, por ejemplo, un error 400 es causado por un error de análisis en la última solicitud recibida. Después de la API HTTP envía la respuesta de error, cierra la conexión.
  • Tiempos de espera de conexión La API HTTP agote una conexión. Si está pendiente una petición de conexión cuando se agote, la solicitud se utiliza para proporcionar más información sobre theconnection en el registro de errores.
  • Solicitudes de huérfanos Un proceso en modo usuario se detiene inesperadamente mientras existen todavía en cola las solicitudes que se dirigen a ese proceso. La API HTTP registra las solicitudes huérfanas en el registro de errores.
Errores concretos se describen mediante cadenas Reason Phrase que aparecen siempre como el último campo de cada línea de error. La siguiente tabla identifica las cadenas Reason phrase API de HTTP.
Frase de motivoDescripción

AppOfflineUn servicio disponible error (error 503 de HTTP). El servicio no está disponible debido a errores de aplicación que la aplicación esté offline.
AppPoolTimerUn servicio disponible error (error 503 de HTTP). El servicio no está disponible porque el proceso del grupo de aplicaciones está demasiado ocupado para atender la solicitud.
AppShutdownUn servicio disponible error (error 503 de HTTP). El servicio no está disponible porque la aplicación se cierra de forma automática en respuesta a la directiva del administrador.
BadRequestSe ha producido un error de análisis al procesar una solicitud.
Client_ResetLa conexión entre el cliente y el servidor se cerró antes de que la solicitud se podría asignar a un proceso de trabajo. La causa más común de este comportamiento es que el cliente cierra prematuramente la conexión al servidor.
Connection_Abandoned_By_AppPoolUn proceso de trabajo desde el grupo de aplicaciones tiene inesperadamente o dejado una solicitud pendiente al cerrar el controlador.
Connection_Abandoned_By_ReqQueueUn proceso de trabajo desde el grupo de aplicaciones tiene inesperadamente o dejado una solicitud pendiente al cerrar el controlador. Específico para Windows Vista y versiones posteriores y Windows Server 2008 y versiones posteriores.
Connection_DroppedLa conexión entre el cliente y el servidor se cerró antes de que el servidor pudiera enviar su último paquete de respuesta. La causa más común de este comportamiento es que el cliente cierra prematuramente la conexión al servidor.
Connection_Dropped_List_FullLa lista de las conexiones interrumpidas entre los clientes y el servidor está lleno. Específico para Windows Vista y versiones posteriores y Windows Server 2008 y versiones posteriores.
ConnLimitUn servicio disponible error (error 503 de HTTP). El servicio no está disponible porque se ha alcanzado o superado el límite de conexión de nivel de sitio.
Connections_RefusedLa memoria NonPagedPool del núcleo ha disminuido a menos de 20MB y http.sys ha dejado de recibir nuevas conexiones
DeshabilitadoUn servicio disponible error (error 503 de HTTP). El servicio no está disponible porque un administrador ha dejado la aplicación sin conexión.
EntityTooLargeUna entidad supera el tamaño máximo permitido.
FieldLengthSe ha superado un límite de longitud de campo.
ProhibidoUn elemento o secuencia prohibido se encontró durante el análisis.
EncabezadoSe ha producido un error de análisis en un encabezado.
Nombre de hostSe ha producido un error de análisis al procesar un nombre de host.
InternoError de servidor interno (error 500 de HTTP).
Invalid_CR/LFSe ha producido un retorno de carro ilegal o avance de línea.
LengthFaltaba un valor de longitud requerido.
N /Un servicio disponible error (error 503 de HTTP). El servicio no está disponible porque se ha producido un error interno (por ejemplo, un error de asignación de memoria o un conflicto de lista de la reserva de dirección URL).
N / IUn error de no implementación produjo (error 501 de HTTP) o un servicio disponible error (error 503 de HTTP) a causa de una codificación de transferencia desconocida.
NúmeroSe ha producido un error de análisis al procesar un número.
Condición previaUna precondición requerida que falta.
QueueFullUn servicio disponible error (error 503 de HTTP). El servicio no está disponible porque la cola de solicitudes está lleno.
RequestIndexSe ha superado un límite de longitud de la solicitud.
Timer_AppPoolLa conexión ha caducado porque una solicitud esperó demasiado tiempo en una cola del grupo de aplicaciones para una aplicación de servidor en la cola y procesarlo. Esta duración de tiempo de espera es ConnectionTimeout. De forma predeterminada, este valor se establece en dos minutos.
Timer_ConnectionIdleLa conexión ha caducado y sigue inactiva. La duración predeterminada de ConnectionTimeout es de dos minutos.
Timer_EntityBodyLa conexión ha caducado antes de que llegara el cuerpo de la entidad de solicitud. Cuando una solicitud claramente tiene un cuerpo de entidad, la API HTTP activa el contador Timer_EntityBody . En primer lugar, el límite de este contador se establece en el valor de ConnectionTimeout (normalmente, dos minutos). Cada vez que se recibe esa otra indicación de datos en esta solicitud, la API HTTP restablece el temporizador para dar a la conexión dos minutos más (o lo que se especifica en ConnectionTimeout).
Timer_HeaderWaitLa conexión ha caducado porque el análisis de encabezado de una solicitud ha superado el límite predeterminado de dos minutos.
Timer_MinBytesPerSecondLa conexión ha caducado porque el cliente no recibía una respuesta a una velocidad razonable. La velocidad de la respuesta era menor que el valor predeterminado de 240 bytes por segundo. Esto puede controlarse con la propiedad de la metabase MinFileBytesPerSec .
Timer_ReqQueueLa conexión ha caducado porque una solicitud esperó demasiado tiempo en una cola del grupo de aplicaciones para una aplicación de servidor en la cola. Esta duración de tiempo de espera es ConnectionTimeout. De forma predeterminada, este valor se establece en dos minutos. Específico para Windows Vista y versiones posteriores y Windows Server 2008 y versiones posteriores.
Timer_ResponseReservado. No utiliza actualmente.
Timer_SslRenegotiationLa conexión ha caducado porque la renegociación de SSL entre el cliente y el servidor tardó más larga que el tiempo de espera predeterminado de dos minutos.
DIRECCIÓN URLSe ha producido un error de análisis al procesar una dirección URL.
URL_LengthUna dirección URL supera el tamaño máximo permitido.
VerboSe ha producido un error de análisis al procesar un verbo.
Version_N/SSe ha producido un error de versión no compatible (error 505 de HTTP).

Volver al principio
Referencias
Para obtener más información acerca de cómo agregar campos de un registro adicional para el registro de error de HTTP de IIS, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
832975 Propiedades adicionales están disponibles para el registro en el archivo de Httperr # .log en IIS 6.0 e IIS 7.0

Atribuudid

Artikli ID: 820729 – viimati läbi vaadatud: 08/06/2016 02:04:00 – redaktsioon: 11.0

Windows Server 2008 R2 Standard, Windows Server 2008 R2 Enterprise, Windows Server 2008 Enterprise, Windows Server 2012 R2 Standard, Windows Server 2012 R2 Datacenter, Windows Server 2012 R2 Essentials, Windows Server 2012 R2 for Embedded Systems, Windows Server 2012 R2 Foundation, Windows Server 2012 Standard, Windows Server 2012 Datacenter, Windows Server 2012 Essentials, Windows 10, Windows 10 Enterprise, released in July 2015, Windows 10 Pro, released in July 2015, Windows 10 Version 1511, Windows 8.1, Windows 8.1 Enterprise, Windows 8.1 Pro, Windows 8, Windows 8 Pro, Windows 8 Enterprise, Windows 7 Professional, Windows 7 Enterprise

  • kbhttphandlers kbhttp kbapi kberrmsg kbinfo kbmt KB820729 KbMtes
Tagasiside