ID do artigo: 820729 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Este artigo descreve os recursos de log de erros das APIs de HTTP.

Alguns erros de aplicativos com base em HTTP são manipulados automaticamente pela API do HTTP, em vez de serem devolvidos ao aplicativo e solucionados por ele. Isso acontece porque a frequência desses erros pode encher o log de um evento ou o manipulador de um aplicativo.

Os tópicos a seguir descrevem os diferentes aspectos do log de erros da API de HTTP:
  • Configurar o log de erro de API de HTTP
    As configurações de registro controlam os erros de log das APIs de HTTP, o tamanho máximo permitido para os arquivos de log e o local dos arquivos de log.
  • Formato dos logs de erro das APIs de HTTP
    A API de HTTP cria arquivos de log que estão em conformidade com as convenções de arquivo de log do World Wide Web Consortium (W3C). Você pode usar ferramentas padrão para analisar esses arquivos de log. No entanto, ao contrário dos arquivos de log do W3C, os arquivos de log das APIs de HTTP não contêm os nomes das colunas.
  • Tipos de erros que a API de HTTP registra
    A API de HTTP registra muitos erros comuns.

Mais Informações

Configurar o log de erro das APIs de HTTP

Para que configuremos o log de erro das APIs de HTTP para você, vá para a seção "Corrija para mim". Se você preferir configurar o log de erros das APIs de HTTP sozinho, vá para a seção "Desejo corrigir sozinho".

Corrigir para mim



Para corrigir esse problema automaticamente, clique no botão ou no link Corrigir. Na caixa de diálogo Download de Arquivos, clique em Executar e siga as etapas no Assistente Fix it.

Desativar o log de erros da API de HTTP
Microsoft Fix it 50635
Ativar o log de erros da API de HTTP
Microsoft Fix it 50634


Observações
  • Este assistente pode estar apenas em inglês. No entanto, a correção automática também funciona em versões do Windows em outros idiomas.
  • Se você não estiver usando o computador que apresenta o problema, salve a solução Fix it em uma unidade flash ou em um CD e execute-a no computador que apresenta o problema.



Desejo corrigir sozinho

Três valores de registro em uma chave HTTP \Parameters controlam o log de erro de APIs de HTTP. Essas chaves estão localizadas na seguinte chave de Registro:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
Observação O local e a forma dos valores de configuração podem ser alterados em versões posteriores do sistema operacional Windows.

Você deve possuir credenciais de Administrador/Sistema Local para alterar os valores de Registro e para visualizar ou alterar os arquivos de log e a pasta que os contém.

As informações de configuração para os valores do registro são lidas quando o driver de API de HTTP é iniciado. Portanto, se você alterar as configurações, deverá parar e reiniciar o driver para ler os novos valores. Para isso, digite os seguintes comandos de console:
net stop http
net start http
A seguinte convenção é usada para nomear os arquivos de log:
httperr + número de sequenciação + .log
Exemplo: httperr4.log
Os arquivos de log são alternados quando atingem o tamanho máximo especificado pelo valor de registro ErrorLogFileTruncateSize. Esse valor não pode ser menor que um megabyte (MB).

Se a configuração do log de erro não for válida ou se ocorrer algum tipo de falha enquanto a API de HTTP está gravando nos arquivos de log, a API de HTTP usará o log de eventos para avisar aos administradores que o log de erro não está sendo realizado.

A tabela a seguir descreve os valores de configuração do registro.
Recolher esta tabelaExpandir esta tabela
Valor do RegistroDescrição
EnableErrorLoggingUma DWORD que pode ser definida como TRUE para a habilitação do log de erro ou como FALSE para sua desabilitação. O valor padrão é TRUE.
ErrorLogFileTruncateSizeUma DWORD que especifica o tamanho máximo de um arquivo de log de erro, em bytes. O valor padrão é um MB (0x100000).

Observação O valor especificado não pode ser menor que o valor padrão.
ErrorLoggingDirUma sequência de caracteres que especifica a pasta em que a API de HTTP coloca seus arquivos de log.

A API de HTTP cria uma subpasta HTTPERR na pasta especificada e armazena os arquivos de log na subpasta. Essa subpasta e os arquivos de log recebem as mesmas configurações de permissão. O administrador e as contas do Sistema Local têm acesso total. Outros usuários não têm acesso.

Esta será a pasta padrão quando não for especificada uma pasta no registro:
%SystemRoot%\System32\LogFiles

Observação O valor da sequência de caracteres ErrorLoggingDir deve ser um caminho local totalmente qualificado. No entanto, ele pode conter %SystemRoot%. Uma unidade de rede ou um compartilhamento de rede não pode ser usado.

Formato dos logs de erro das APIs de HTTP

Geralmente, os arquivos de log de erro das APIs de HTTP têm o mesmo formato que os logs de erro W3C, exceto pelo fato que os arquivos de log de erro das APIs de HTTP não contêm títulos das colunas. Cada linha de um log de erro de API de HTTP registra um erro. Os campos aparecem em uma ordem específica. Um caractere de espaço simples (0x0020) separa cada campo do campo anterior. Em cada campo, os sinais de adição (0x002B) substituem os espaços, tabulações e caracteres de controle não imprimíveis.

A tabela a seguir identifica os campos e a ordem dos campos em um registro de log de erro.
Recolher esta tabelaExpandir esta tabela
CampoDescrição
dataO campo Data segue o formato W3C. Este campo baseia-se no tempo Universal Coordenado (UTC). O campo de Data será sempre de dez caracteres, no formato aaaa-mm-dd. Por exemplo, 1º de maio de 2003 será 2003-05-01.
horaO campo Hora segue o formato W3C. Este campo baseia-se em UTC. O campo de tempo terá sempre oito caracteres na forma MM:HH:SS. Por exemplo, 5:30 PM (UTC) é expresso como 17:30:00.
Endereço IP do clienteO endereço IP do cliente afetado. O valor neste campo pode ser um endereço IPv4 ou um endereço IPv6. Se o endereço IP do cliente for um endereço IPv6, o campo ScopeId também estará incluído no endereço.
Porta do clienteO número da porta do cliente afetado.
Endereço IP do servidorO endereço IP do servidor afetado. O valor neste campo pode ser um endereço IPv4 ou um endereço IPv6. Se o endereço IP do servidor for um endereço IPv6, o campo ScopeId também estará incluído no endereço.
Porta do servidorO número da porta do servidor afetado.
Versão do protocoloA versão do protocolo que está sendo usado.

Se a conexão não foi analisada o suficiente para determinar a versão do protocolo, um hífen (0x002D) será usado como espaço reservado para o campo vazio.

Se o maior número de versão ou o menor número de versão analisado for maior ou igual a 10, a versão será registrada como HTTP/?.?.
VerboO estado do verbo que a última solicitação a ser analisada passa. Verbos desconhecidos estão incluídos, mas qualquer verbo com mais de 255 bytes será truncado para esse comprimento. Se um verbo não estiver disponível, um hífen (0x002D) será usado como um espaço reservado para o campo vazio.
CookedURL + consultaA URL e qualquer consulta associada a ela são registrados como um campo separado por um ponto de interrogação (0x3F). Este campo será truncado no limite de comprimento de 4.096 bytes.

Se esta URL foi analisada (processada), ela está registrada com a conversão de página de código local e é tratada como um campo Unicode.

Se esta URL não foi analisada (processada) no momento do registro, ela será copiada exatamente igual, sem conversão para Unicode.

Se a API de HTTP não conseguir analisar esta URL, um hífen (0x002D) será usado como um espaço reservado para o campo vazio.
Status de protocoloO status do protocolo não pode ser maior que 999.

Se o status do protocolo da resposta a uma solicitação estiver disponível, ele estará registrado neste campo.

Se o status do protocolo não estiver disponível, um hífen (0x002D) será usado como um espaço reservado para o campo vazio.
SiteIdNão usada nesta versão da API de HTTP. Um hífen (0x002D) de espaço reservado sempre aparece neste campo.
Frase de motivoEste campo contém uma sequência de caracteres que identifica o tipo de erro que está sendo registrado. Este campo nunca estará vazio.
Nome da FilaEste é o nome de fila de solicitação.
As linhas de exemplo a seguir são de um log de erro de API de 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 64388 127.0.0.1 80 - - - - - Timer_MinBytesPerSecond

Tipos de erros que a API de HTTP registra

A API de HTTP registra respostas de erros a clientes, tempos limite da conexão, solicitações órfãs e conexões interrompidas que foram manipulados incorretamente.

A seguinte lista identifica os tipos de erros que a API de HTTP registra:
  • Respostas a clientes A API de HTTP envia uma resposta de erro a um cliente. Por exemplo, um erro 400 causado por um erro de análise na última solicitação recebida. Depois que a API de HTTP envia a resposta de erro, ela encerra a conexão.
  • Tempos limite de conexão A API de HTTP encerra uma conexão. Se uma solicitação estiver pendente no momento em que a conexão atingir o tempo limite, ela será usada para fornecer mais informações sobre a conexão no log de erros.
  • Solicitações órfãs Um processo de modo de usuário é encerrado inesperadamente enquanto ainda há solicitações na fila a serem encaminhadas para o processo. A API de HTTP registra as solicitações órfãs no log de erros.
Tipos de erros específicos são designados pelas sequências de caracteres Frase de motivo que sempre aparecem no último campo de cada linha de erro. A tabela a seguir identifica as frases de motivo da API de HTTP.
Recolher esta tabelaExpandir esta tabela
Frase de motivoDescrição

AppOfflineErro de serviço indisponível (um erro 503 de HTTP). O serviço não está disponível porque os erros do aplicativo fizeram com que o aplicativo fosse colocado off-line.
AppPoolTimerErro de serviço indisponível (um erro 503 de HTTP). O serviço não está disponível porque o processo de pool de aplicativos está muito ocupado para manipular a solicitação.
AppShutdownErro de serviço indisponível (um erro 503 de HTTP). O serviço não está disponível porque o aplicativo desligou-se automaticamente em resposta à diretiva do administrador.
BadRequestErro de análise ao processar uma solicitação.
Client_ResetA conexão entre o cliente e o servidor foi encerrada antes que a solicitação fosse atribuída a um processo de trabalho. A causa mais comum para esse comportamento é o cliente encerrar prematuramente a conexão com o servidor.
Connection_Abandoned_By_AppPoolUm processo de trabalho do pool de aplicativos foi encerrado inesperadamente ou deixou órfã uma solicitação pendente, fechando o manipulador que a conduzia.
Connection_Abandoned_By_ReqQueueUm processo de trabalho do pool de aplicativos foi encerrado inesperadamente ou deixou órfã uma solicitação pendente, fechando o manipulador que a conduzia. Específico para o Windows Vista e versões posteriores e para o Windows Server 2008 e versões posteriores.
Connection_DroppedA conexão entre o cliente e o servidor foi encerrada antes que o servidor enviasse o pacote de resposta final. A causa mais comum para esse comportamento é o cliente encerrar prematuramente a conexão com o servidor.
Connection_Dropped_List_FullA lista de queda de conexões entre clientes e o servidor está cheia. Específico para o Windows Vista e versões posteriores e para o Windows Server 2008 e versões posteriores.
ConnLimitErro de serviço indisponível (um erro 503 de HTTP). O serviço não está disponível porque o limite de conexões no nível do site foi atingido ou excedido.
Connections_RefusedA memória NonPagedPool do kernel caiu abaixo de 20 MB e o http.sys parou de receber novas conexões
DesativadoErro de serviço indisponível (um erro 503 de HTTP). O serviço não está disponível porque um administrador assumiu o aplicativo off-line.
EntityTooLargeUma entidade excedeu o tamanho máximo permitido.
FieldLengthUm limite de comprimento de campo foi excedido.
ProibidoUm elemento ou sequência proibida foi encontrado durante a análise.
CabeçalhoErro de análise em um cabeçalho.
Nome do hostErro de análise ao processar um nome do host.
InternoErro de servidor interno (um erro 500 de HTTP).
Invalid_CR/LF.Ocorreu um retorno de carro ou alimentação de linha ilegal.
LengthRequiredUm valor de comprimento necessário estava ausente.
N/AErro de serviço indisponível (um erro 503 de HTTP). O serviço não está disponível por causa de um erro interno (como, por exemplo, uma falha de alocação de memória ou um conflito na lista de reserva da URL).
N/IErro não implementado (um erro 501 de HTTP) ou erro de serviço indisponível (um erro 503 de HTTP) por conta de uma codificação de transferência desconhecida.
NúmeroErro de análise ao processar um número.
Pré-condiçãoUma pré-condição necessária estava ausente.
QueueFullErro de serviço indisponível (um erro 503 de HTTP). O serviço não está disponível porque a fila de solicitações do aplicativo está cheia.
RequestLengthUm limite de comprimento de solicitações foi excedido.
Timer_AppPoolA conexão expirou porque uma solicitação atingiu o tempo limite em uma fila de pool de aplicativos antes que um aplicativo de servidor a retirasse da fila e a processasse. A duração do tempo limite é ConnectionTimeout. Por padrão, esse valor é definido para dois minutos.
Timer_ConnectionIdleA conexão expirou e permanece ociosa. A duração padrão ConnectionTimeout é de dois minutos.
Timer_EntityBodyA conexão expirou antes que o corpo da entidade de solicitação chegasse. Quando está claro uma solicitação tem um corpo de entidade, a API de HTTP ativa o timer Timer_EntityBody. Inicialmente, o limite do temporizador é definido para o valor ConnectionTimeout (normalmente de 2 minutos). Sempre que outra indicação de dados for recebida nesta solicitação, a API de HTTP redefine o timer para fornecer à conexão mais dois minutos (ou o que estiver especificado em ConnectionTimeout).
Timer_HeaderWaitA conexão expirou porque a análise do cabeçalho de uma solicitação demorou mais que o limite padrão de dois minutos.
Timer_MinBytesPerSecondA conexão expirou porque o cliente não recebeu uma resposta a uma velocidade razoável. A taxa de envio de resposta foi mais lenta do que o padrão de 240 bytes por segundo. Isso pode ser controlado com a propriedade de metabase MinFileBytesPerSec.
Timer_ReqQueueA conexão expirou porque uma solicitação atingiu o tempo limite em uma fila de pool de aplicativos antes que um aplicativo de servidor a retirasse da fila. A duração do tempo limite é ConnectionTimeout. Por padrão, esse valor é definido para dois minutos. Específico para o Windows Vista e versões posteriores e para o Windows Server 2008 e versões posteriores.
Timer_ResponseReservado. Não usado no momento.
Timer_SslRenegotiation A conexão expirou porque a renegociação de SSL entre o cliente e o servidor demorou mais do que o tempo limite padrão de dois minutos.
URLErro de análise ao processar uma URL.
URL_LengthUma URL excedeu o tamanho máximo permitido.
VerboErro de análise ao processar um verbo.
Version_N/S.Erro de versão não suportada (um erro 505 de HTTP).

Referências

Para obter mais informações sobre como adicionar campos para o log de erros de HTTP do IIS, clique no número abaixo para ler o artigo na Base de Dados de Conhecimento Microsoft:
832975 As propriedades adicionais estão disponíveis para registro no arquivo Httperr#.log no IIS 6.0 e IIS 7.0

Propriedades

ID do artigo: 820729 - Última revisão: quarta-feira, 8 de janeiro de 2014 - Revisão: 8.0
A informação contida neste artigo aplica-se a:
  • Windows Server 2012 Standard
  • Windows 8
  • Windows 8 Pro
  • Windows 8 Enterprise
  • Windows 7 Professional
  • Windows 7 Enterprise
  • Windows Server 2008 R2 Standard
  • Windows Server 2008 R2 Enterprise
  • Windows Server 2008 Enterprise
  • Windows Vista Enterprise
  • Windows Vista Ultimate
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003 R2 Enterprise Edition (32-Bit x86)
  • Microsoft Windows Server 2003 R2 Standard x64 Edition
  • Microsoft Windows Server 2003 R2 Enterprise x64 Edition
Palavras-chave: 
kbhttphandlers kbhttp kbapi kberrmsg kbinfo kbfixme kbmsifixme KB820729

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com