Registo de erros no APIs de HTTP

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática… erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 820729
Sumário
Este artigo descreve as capacidades de registo de erros de APIs de HTTP.

Alguns erros que ocorrem num aplicativo baseado em HTTP são automaticamente processados pela API HTTP em vez da transmitir para uma aplicação para processamento. Este comportamento ocorre porque a frequência de tais erros caso contrário poderá inundar um registo de eventos ou um processador de aplicação.

Os tópicos seguintes descrevem os diferentes aspectos do registo de erros de API de HTTP.
  • Configurar errorlogging de API de HTTP
    A API de HTTP de controlo de definições de registo regista erros, themaximum permissão tamanho dos ficheiros de registo e a localização dos ficheiros de registo.
  • Formato de APIerror o HTTP inicia sessão
    A API HTTP cria ficheiros de registo que estejam em conformidade com convenções de ficheiro de registo na World Wide Web Consortium (W3C). Pode utilizar ferramentas padrão para analisar estes ficheiros de registo. No entanto, ao contrário dos ficheiros de registo W3C, ficheiros de registo de HTTP API efectuar notcontain os nomes de colunas.
  • Tipos de erros que regista a API HTTP
    A API HTTP regista muitos erros comuns.
Resolução

Configurar o registo de erro da API de HTTP

Três valores de registo numa chave HTTP \Parameters controlam o registo de erro da API de HTTP. Estas chaves estão localizadas na seguinte chave de registo:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
Nota A localização e a forma dos valores de configuração podem ser alteradas em versões posteriores do sistema operativo Windows.

Tem de ter credenciais de administrador/Local de sistema para alterar os valores de registo e para ver ou alterar os ficheiros de registo e a pasta que contém.

Informações de configuração nos valores de registo é de leitura quando o controlador de API de HTTP é iniciado. Por conseguinte, se alterar as definições, deve parar e, em seguida, reinicie o controlador leia os novos valores. Para tal, escreva os seguintes comandos de consola:
net stop http
net start http
A seguinte convenção de atribuição de nomes é utilizada para atribuir um nome os ficheiros de registo:
httperr + número de sequência +. log
Exemplo: httperr4.log
Ficheiros de registo estão desligado e ligados quando atingem o tamanho máximo que especifica o valor de registo ErrorLogFileTruncateSize . Este valor não pode ser inferior a um megabyte (MB).

Se a configuração do registo de erros não é válida ou se ocorrer qualquer tipo de falha enquanto a API HTTP está a escrever os ficheiros de registo, a API HTTP utiliza o registo de eventos para notificar os administradores que o registo de erros não está a ocorrer.

A tabela seguinte descreve os valores de configuração do registo.
Valor de registoDescrição
EnableErrorLoggingUm DWORD que pode definir como TRUE para activar o registo de erros ou FALSE para desactivá-lo. O valor predefinido é TRUE.
ErrorLogFileTruncateSizeUma DWORD que especifica o tamanho máximo de um ficheiro de registo de erro, em bytes. O valor predefinido é um MB (0x100000).

Nota O valor especificado não pode ser menor do que o valor predefinido.
ErrorLoggingDirUma cadeia que especifica a pasta onde a API HTTP coloca os ficheiros de registo.

A API HTTP cria uma subpasta HTTPERR na pasta especificada e, em seguida, armazena os ficheiros de registo na subpasta. Esta subpasta e os ficheiros de registo recebem as mesmas definições de permissão. O administrador e contas de sistema Local têm acesso total. Outros utilizadores não têm acesso.

Segue-se a pasta predefinida quando a pasta não é especificada no registo:
%Systemroot%\System32\LogFiles

Nota O valor da cadeia ErrorLoggingDir tem de ser um caminho local totalmente qualificado. No entanto, pode conter % SystemRoot %. Não é possível utilizar uma unidade de rede ou partilha de rede.

regressar ao início

Formatar os registos de erro da API de HTTP

Normalmente, ficheiros de registo de erro de API de HTTP têm o mesmo formato como registos de erros de W3C, excepto que os ficheiros de registo de erro de HTTP API contém cabeçalhos de coluna. Cada linha de um registo de erros de HTTP API regista um erro. Os campos aparecem numa ordem específica. Um carácter de espaço única (0x0020) separa cada valor do campo anterior. Em cada campo, sinais de adição (0x002B) substituir caracteres de espaços, tabulações e caracteres de controlo não imprimíveis.

A tabela seguinte identifica os campos e a ordem dos campos de um registo de erro.
CampoDescrição
DataO campo data segue o formato do W3C. Este campo é baseado no tempo Universal Coordenado (UTC). O campo data é sempre dez caracteres sob a forma de aaaa-MM-DD. Por exemplo, 1 de Maio de 2003 é expressa como 2003-05-01.
HoraO campo Hora segue o formato do W3C. Este campo é baseado no UTC. O campo de hora é sempre oito caracteres sob a forma de MM:HH:SS. Por exemplo, 5:30 PM (UTC) é expressa como 17:30:00.
Endereço IP do clienteO endereço IP do cliente afectado. O valor neste campo pode ser um endereço IPv4 ou um endereço IPv6. Se o endereço IP do cliente é um endereço IPv6, o campo IDÂmbito também está incluído no endereço.
Porta de clienteO número de porta para o cliente afectado.
Endereço IP do servidorO endereço IP do servidor afectado. O valor neste campo pode ser um endereço IPv4 ou um endereço IPv6. Se o endereço IP do servidor é um endereço IPv6, o campo IDÂmbito também está incluído no endereço.
Porta do servidorO número de porta de servidor afectado.
Versão de protocoloA versão do protocolo que está a ser utilizado.

Se a ligação tem não foi analisada suficientemente todetermine a versão do protocolo, um hífen (0x002D) é utilizado como um placeholderfor o campo vazio.

Se o número de versão principal ou o número de versão secundária que seja analisado isgreater que ou igual a 10, a versão é registada com HTTP /?.?.
VerboO estado de verbo o último pedido ou seja analisado passagens. Verbos desconhecidos são incluídos, mas qualquer verbo que mais de 255 bytes é truncado para este comprimento. Se um verbo não estiver disponível, um hífen (0x002D) é utilizado como marcador de posição para o campo vazio.
CookedURL + consultaO URL e qualquer consulta que está associada à mesma sessão iniciadas como um campo que está separado por um ponto de interrogação (0x3F). Este campo é truncado no respectivo limite de comprimento de 4.096 bytes.

Se este URL foi analisado ("cozidos"), é iniciado com a conversão de páginas de código local e é tratada como um campo de Unicode.

Se este URL não tenha sido analisado, ("cozidos") no thetime de registo, é copiado exactamente, sem qualquer conversão de Unicode.

Se a API HTTP não é possível analisar este URL, um hyphen(0x002D) é utilizado como marcador de posição para o campo vazio.
Estado do protocoloO estado do protocolo não pode ser superior a 999.

Se o estado do protocolo de resposta para um requestis disponível, é registado neste campo.

Se o estado do protocolo não estiver disponível, uma hyphen(0x002D) é utilizado como marcador de posição para o campo vazio.
SiteIdNão utilizado nesta versão da API do HTTP. Um hífen de marcador de posição (0x002D) é sempre apresentada neste campo.
Expressão do razãoEste campo contém uma cadeia que identifica o tipo de erro que está a ser registado. Este campo nunca é deixado vazio.
Nome da filaEste nome de fila pedido.
São as seguintes linhas de exemplo de um registo de erro da HTTP API:
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 GET 2894 127.0.0.1 80 HTTP/2.0 / 505 - Version_N/S 2002-07-05 20:06:01 172.31.77.6 64388 127.0.0.1 80-----Timer_MinBytesPerSecond
regressar ao início

Tipos de erros que inicia a API HTTP

A API HTTP regista as respostas de erro para clientes, tempos limite de ligação, pedidos de órfãos e ligações interrompidas, que são processadas incorrectamente.

A lista seguinte identifica os tipos de erros que inicia a API HTTP:
  • Respostas aos clientes A API HTTP envia uma resposta de erro para um cliente, por exemplo, um erro de 400 é causado por um erro de análise no último pedido recebido. Depois da API HTTP envia a resposta de erro, fecha a ligação.
  • Tempos limite de ligação A API HTTP o tempo limite de uma ligação. Se estiver pendente um pedido de ligação de whenthe o tempo de espera, o pedido é utilizado para fornecer mais informações sobre theconnection no registo de erros.
  • Pedidos de Orphaned Um processo do modo de utilizador pára inesperadamente enquanto existirem ainda em fila pedidos encaminhados para esse processo. A API HTTP regista os pedidos de órfãos no registo de erros.
Tipos de erro específico são designados por cadeias de Expressão de razão que aparecem sempre que o último campo de cada linha do erro. A tabela seguinte identifica as frases de razão de API de HTTP.
Expressão do razãoDescrição

AppOfflineServiço indisponível erro de (um erro HTTP 503). O serviço não está disponível porque a aplicação erros causados a aplicação a serem colocado offline.
AppPoolTimerServiço indisponível erro de (um erro HTTP 503). O serviço não está disponível porque o processo de agrupamento de aplicações está demasiado ocupado para processar o pedido.
AppShutdownServiço indisponível erro de (um erro HTTP 503). O serviço não está disponível porque a aplicação encerra automaticamente em resposta a política de administrador.
BadRequestOcorreu um erro de análise ao processar um pedido.
Client_ResetA ligação entre o cliente e o servidor foi fechada antes do pedido pode ser atribuído a um processo de trabalho. A causa mais comum deste comportamento é que o cliente fecha prematuramente a ligação ao servidor.
Connection_Abandoned_By_AppPoolUm processo de trabalho do agrupamento de aplicações tem de ser terminado inesperadamente ou isoladas de um pedido pendente, fechando a respectiva alça.
Connection_Abandoned_By_ReqQueueUm processo de trabalho do agrupamento de aplicações tem de ser terminado inesperadamente ou isoladas de um pedido pendente, fechando a respectiva alça. Específico para o Windows Vista e versões posteriores e para Windows Server 2008 e versões posteriores.
Connection_DroppedA ligação entre o cliente e o servidor foi fechada antes do servidor pode enviar o pacote de resposta final. A causa mais comum deste comportamento é que o cliente fecha prematuramente a ligação ao servidor.
Connection_Dropped_List_FullA lista de ligações interrompidas entre clientes e o servidor está cheia. Específico para o Windows Vista e versões posteriores e para Windows Server 2008 e versões posteriores.
ConnLimitServiço indisponível erro de (um erro HTTP 503). O serviço não está disponível porque atingiu ou excedeu o limite de ligação de nível do site.
Connections_RefusedO kernel NonPagedPool memória tenha descido abaixo 20MB e HTTP. sys parou novas ligações a receber
DesactivadoServiço indisponível erro de (um erro HTTP 503). O serviço não está disponível porque um administrador tiver tomado a aplicação offline.
EntityTooLargeUma entidade excedeu o tamanho máximo permitido.
FieldLengthFoi excedido um limite de comprimento do campo.
ProibidoUm elemento proibido ou a sequência foi detectada durante a análise.
CabeçalhoOcorreu um erro de análise num cabeçalho.
Nome de anfitriãoOcorreu um erro de análise durante o processamento de um nome de anfitrião.
InternoErro interno do servidor ao (um erro HTTP 500).
Invalid_CR/LFOcorreu um carácter CR ilegal ou avanço de linha.
LengthRequiredUm valor de comprimento necessário estava em falta.
N/DServiço indisponível erro de (um erro HTTP 503). O serviço não está disponível porque ocorreu um erro interno (por exemplo, uma lista de reserva de URL conflito ou falha de atribuição de memória).
N / IOcorreu um erro não implementado ao (um erro de HTTP 501) ou um serviço indisponível erro (um erro HTTP 503) devido a uma codificação de transferência desconhecida.
NúmeroOcorreu um erro de análise ao processar um número.
Condição préviaUma condição prévia necessária está em falta.
QueueFullServiço indisponível erro de (um erro HTTP 503). O serviço não está disponível porque a fila de pedidos de aplicação está cheia.
RequestLengthUm limite de comprimento do pedido foi excedido.
Timer_AppPoolA ligação expirou uma vez que um pedido aguardou demasiado tempo numa fila do agrupamento de aplicações para uma aplicação de servidor retirar da fila e processá-la. Esta duração de tempo limite é ConnectionTimeout. Por predefinição, este valor é definido como dois minutos.
Timer_ConnectionIdleA ligação expirou e permanece inactiva. A duração de ConnectionTimeout predefinida é 2 minutos.
Timer_EntityBodyA ligação expirou antes do corpo de entidade de pedido chegou. Quando um pedido claramente tem um corpo de entidade, a API HTTP activa o temporizador de Timer_EntityBody . Primeiro, o limite deste temporizador está definido para o valor de ConnectionTimeout (normalmente, dois minutos). Sempre que essa outra indicação de dados é recebida a este pedido, a API HTTP repõe o temporizador para fornecer a ligação mais dois minutos (ou qualquer que seja especificada no ConnectionTimeout).
Timer_HeaderWaitExpirou a ligação porque o cabeçalho de análise para um pedido demorou mais tempo do que o limite predefinido de dois minutos.
Timer_MinBytesPerSecondExpirou a ligação porque o cliente não estava a receber uma resposta a uma velocidade razoável. A taxa de envio de resposta foi mais lenta do que a predefinição de 240 bytes/seg. Isto pode ser controlado com a propriedade de metabase MinFileBytesPerSec .
Timer_ReqQueueA ligação expirou uma vez que um pedido aguardou demasiado tempo numa fila do agrupamento de aplicações para uma aplicação de servidor retirar da fila. Esta duração de tempo limite é ConnectionTimeout. Por predefinição, este valor é definido como dois minutos. Específico para o Windows Vista e versões posteriores e para Windows Server 2008 e versões posteriores.
Timer_ResponseReservado. Atualmente não utilizado.
Timer_SslRenegotiationA ligação expirados porque renegociação de SSL entre o cliente e o servidor demorou mais do que o tempo limite predefinido de dois minutos.
URLOcorreu um erro de análise durante o processamento de um URL.
URL_LengthUm URL excedeu o máximo permitido de tamanho.
VerboOcorreu um erro de análise durante o processamento de um verbo.
Version_N/SUma versão não suportada erro (um erro de HTTP 505).

regressar ao início
Referências
Para mais informações sobre como adicionar campos de registo adicionais para o registo de erros de HTTP do IIS, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:
832975 Propriedades adicionais estão agora disponíveis para o registo no ficheiro Httperr #. log no IIS 6.0 e IIS 7.0

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 820729 - Última Revisão: 08/06/2016 01:30:00 - Revisão: 10.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 KbMtpt
Comentários
ERROR: at System.Diagnostics.Process.Kill() at Microsoft.Support.SEOInfrastructureService.PhantomJS.PhantomJSRunner.WaitForExit(Process process, Int32 waitTime, StringBuilder dataBuilder, Boolean isTotalProcessTimeout)