Solucionar problemas de solicitações com falha usando o rastreamento no IIS 8.5
Aplica-se a: Serviços de Informações da Internet 8.5
Introdução
O rastreamento baseado em solicitação está disponível tanto em servidores IIS autônomos quanto em WAWS (Sites do Microsoft Azure). Se você puder reproduzir o problema que está enfrentando, o rastreamento baseado em solicitação fornecerá uma maneira de determinar o que exatamente está acontecendo com suas solicitações e por que isso está acontecendo. Problemas como baixo desempenho em algumas solicitações, falhas relacionadas à autenticação em outras solicitações ou o erro do servidor 500 do ASP ou ASP.NET muitas vezes podem ser difíceis de solucionar problemas, a menos que você tenha capturado o rastreamento do problema quando ele ocorre. Este artigo discute o rastreamento de solicitação com falha no servidor do IIS. Para obter informações sobre como fazer isso com os Sites do Microsoft Azure, consulte Solucionar problemas de um aplicativo no Serviço de Aplicativo do Azure usando o Visual Studio.
O rastreamento de solicitação com falha foi projetado para fazer buffer dos eventos de rastreamento para uma solicitação e apenas liberá-los para o disco se a solicitação falhar, em que você fornecerá a definição de falha. Se você quiser saber por que suas solicitações estão retornando um código HTTP status específico, por exemplo, 401 ou 404 ou se uma solicitação está demorando um pouco para processar ou não está respondendo, você pode usar o Rastreamento de Solicitação com Falha.
As tarefas explicadas neste artigo incluem:
- Habilitando o módulo rastreamento de solicitação com falha.
- Configurando a semântica de log de rastreamento de solicitação com falha.
- Definindo a URL para a qual manter rastreamentos de solicitação com falha, incluindo definições de falha e áreas a serem rastreadas.
- Gerando a condição de falha e exibindo o rastreamento resultante.
Pré-requisitos
Instalar o IIS
Instale o IIS 8.5 antes de poder executar as tarefas descritas neste artigo. Navegue até http://localhost/
e verifique se a tela de respingo dos Serviços de Informações da Internet é exibida. Se o IIS não estiver instalado, consulte Instalando o IIS 8.5 no Windows Server 2012 R2 para obter instruções de instalação. Ao instalar o IIS, verifique se você também instala os seguintes recursos:
- ASP.NET 3.5 (em Recursos deDesenvolvimento/ de Aplicativos do Servidor Web (IIS)/Web Server/ASP.NET 3.5)
- ASP.NET 4.5 (em Recursos deDesenvolvimento/ de Aplicativos do Servidor Web (IIS)/Web Server/ASP.NET 4.5)
- Rastreamento (em Servidor Web (IIS)/Integridade e Diagnóstico doServidor/ Web – Rastreamento)
Entrar como administrador
Verifique se a conta que você usa para entrar é a conta de administrador ou está no grupo de administradores.
Observação
Estar no grupo de administradores não concede a você direitos completos de usuário do administrador por padrão. Você deve executar aplicativos como administrador clicando com o botão direito do mouse no ícone do aplicativo e selecionando Executar como administrador.
Fazer um backup
Faça um backup dos arquivos de configuração antes de executar as seguintes tarefas:
Selecione a tecla do logotipo do Windows e a chave X simultaneamente, selecione Prompt de Comando (Administração)e selecione Sim.
No prompt de comando, execute o seguinte comando:
%windir%\system32\inetsrv\appcmd add backup cleanInstall
Esse comando cria uma pasta cleanInstall que contém arquivos de configuração de backup em %windir%\system32\inetsrv\backup.
Criar conteúdo de exemplo
Navegue até %systemdrive%\inetpub\wwwroot.
Mova o conteúdo para um local seguro (caso deseje restaurar o conteúdo existente) ou exclua-o.
Crie um arquivo em branco e nomeie-o test.asp.
No prompt de comando, navegue até o arquivo test.asp em \inetpub\wwwroot.
No arquivo test.asp , cole o seguinte conteúdo:
<h2>Failed Request Tracing Lab</h2><br> <br>Today's date is <% response.write(Date()) %>
Desabilitar ASP
O ASP deve estar desabilitado para essa tarefa. O ASP está desabilitado apenas como um exemplo e para as finalidades das tarefas neste artigo.
Para desabilitar o ASP, siga estas etapas:
Abra o Gerenciador do IIS e selecione o servidor.
Clique duas vezes em Restrições de ISAPI e CGI.
No painel Restrições de ISAPI e CGI , selecione Páginas do Servidor Ativo. No painel Ações , selecione Negar para desabilitar o ASP. As Páginas do Servidor Ativo serão exibidas como Não Permitidas.
Habilitar rastreamento de solicitação com falha
Depois de habilitar o Rastreamento de Solicitação com Falha, você precisará configurar o caminho dos arquivos de log. Nesta seção, você habilitará o Rastreamento de Solicitação com Falha para o site padrão e especificará onde armazenar os arquivos de log e configurará a falha para a qual gerar logs de falha.
Etapa 1: habilitar o rastreamento de solicitação com falha para o site e configurar o diretório do arquivo de log
Abra um prompt de comando com os direitos do usuário do administrador e navegue até %systemdrive%\windows\system32\inetsrv.
Execute
inetmgr
para abrir o IIS Manager.No painel Connections, expanda o nome do computador, expanda Sites e selecione Site Padrão.
No painel Ações , em Configurar, selecione Rastreamento de Solicitação com Falha....
Na caixa de diálogo Editar Configurações de Rastreamento de Solicitação com Falha no Site , configure o seguinte:
- Selecione a caixa de seleção Habilitar .
- Mantenha os padrões para as outras configurações.
Selecione OK.
O registro em log de rastreamento de solicitação com falha agora está habilitado para o Site Da Web Padrão. Verifique o arquivo %windir%\system32\inetsrv\config\applicationHost.config para confirmar se a configuração é a seguinte:
<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>
Etapa 2: configurar suas definições de falha
Nesta etapa, configure as definições de falha para sua URL, incluindo quais áreas rastrear. Você solucionará problemas de um código 404.2 status retornado pelo IIS para quaisquer solicitações para extensões que ainda não foram habilitadas. Ele ajuda você a determinar quais extensões específicas você precisa habilitar. Para obter mais informações, confira Códigos de status HTTP no IIS.
Abra um prompt de comando com os direitos do usuário do administrador e navegue até %systemdrive%\windows\system32\inetsrv.
Execute
inetmgr
para abrir o IIS Manager.No painel Connections, expanda o nome do computador, expanda Sites e selecione Site Padrão.
Clique duas vezes em Regras de rastreamento de solicitação com falha.
No painel Ações , selecione Adicionar....
No assistente Adicionar Regra de Rastreamento de Solicitação Com Falha , na página Especificar Conteúdo para Rastrear , selecione Todo o conteúdo (*) e selecione Avançar.
Na página Definir Condições de Rastreamento, selecione a caixa de seleção Status code(s) e insira 404.2 como o código status a ser rastreado.
Selecione Avançar.
Na página Selecionar Provedores de Rastreamento , em Provedores, selecione a caixa de seleção WWW Server e desmarque todas as outras caixas de seleção. Em Áreas, selecione a caixa de seleção Segurança e desmarque todas as outras caixas de seleção.
O problema que você está gerando faz com que um evento de rastreamento de erro de segurança seja gerado. Em geral, problemas de autenticação e autorização (incluindo problemas de lista de restrições isAPI) podem ser diagnosticados usando a configuração da área www server - segurança para rastreamento. No entanto, como a folha de estilos FREB.xsl ajuda a realçar erros e avisos, você ainda pode usar a configuração padrão para registrar todos os eventos em todas as áreas e provedores.
Em Verbosity, selecione Verbose.
Observação
Quando você instala o serviço de função de rastreamento, o IIS instala os provedores de rastreamento de extensão WWW Server, ASP e ISAPI por padrão. Se você instalar ASP.NET 2.0 ou superior, o IIS adicionará automaticamente o provedor de rastreamento ASPNET. Provedores adicionais são instalados pelo pacote instalador do ARR (Application Request Routing), que também instala o módulo Reescrita de URL, Gerenciamento do Web Farm e Cache Externo. Você pode adicionar mais provedores de rastreamento usando o
<add>
elemento dentro do<traceProviderDefinitions>
elemento.Selecione Concluir.
Você verá a seguinte definição para o Site Da Web Padrão:
O Gerenciador do IIS grava a configuração no
%systemdrive%\inetpub\wwwroot\web.config
arquivo usando uma<location>
marca. A configuração deve redendê-lo novamente:<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>
Testar e exibir o arquivo de log de solicitação de falha
Esta seção ajuda você a gerar uma solicitação com falha e exibir o log de rastreamento resultante. Você já configurou o IIS para capturar logs de rastreamento para http://localhost/*.asp
solicitações que falham com um código de resposta HTTP de 404.2. Agora verifique se ele funciona.
Etapa 1: gerar um erro e o arquivo de log de solicitação de falha
Abra uma nova janela de Explorer da Internet.
Insira e
http://localhost/test.asp
pressione ENTER. A mensagem de erro "ERRO HTTP 404.2 – Não Encontrado" é exibida.
Etapa 2: exibir o arquivo de log de solicitação de falha
Agora que você gerou uma solicitação com falha, abra o Windows Explorer e navegue até %systemdrive%\inetpub\logs\FailedReqLogFiles\W3SVC1.
Observação
Quando o IIS grava o arquivo de log de solicitação com falha, ele grava um arquivo por solicitação com falha. Uma folha de estilos freb.xsl também é escrita, uma por diretório. Isso ajuda ao exibir os arquivos de log de solicitação de falha resultantes (como fr000001.xml neste exemplo).
Clique com o botão direito do mouse no arquivo de log para o erro 404.2 e selecione Abrir com ->Internet Explorer. Se essa for a primeira vez que você está abrindo um arquivo de rastreamento de solicitação com falha, você deve adicionar about:internet à lista de sites confiáveis, já que a Configuração de Segurança Aprimorada do Explorer da Internet está habilitada por padrão. Nesse caso, você verá o seguinte:
Na caixa de diálogo Internet Explorer, adicione about:internet à lista de sites confiáveis pelas seguintes etapas:
- Selecione o menu Ferramentas e selecione Opções de Internet.
- Selecione a guia Segurança.
- Selecione Zona Confiável e, em seguida, selecione Sites.
- Isso permite que o XSL funcione.
Você verá uma página resumo de solicitação depois de adicionar sobre:Internet à lista de sites confiáveis:
Um resumo da solicitação com falha é registrado na parte superior, com a tabela Erros & Avisos identificando quaisquer eventos que sejam
WARNING
,ERROR
ouCRITICAL ERROR
com gravidade. Neste exemplo, oWARNING
nível de gravidade é devido a ISAPI RESTRICTION. A imagem que você tentou carregar foi %windir%\system32\inetsrv\asp.dll.Abra o arquivo XML bruto diretamente usando um editor de texto e examine o conteúdo do evento.
Resumo
Você concluiu duas tarefas: configurar o Rastreamento de Solicitação com Falha para capturar rastreamentos de qualquer solicitação que o IIS retorna com um código 404.2 status e verificar se o IIS capturou o rastreamento da sua solicitação. Você também verificou que o arquivo de logfreb.xml não continha nenhuma solicitação diferente daquelas com um código de retorno 404.2. Quando você consultou o arquivo de log de falha, determinou que a causa da falha era que a extensão estava desabilitada para essa solicitação. Você pode experimentar outras páginas não HTML (como .gif ou .jpg arquivos) e observar que o arquivo de log não adiciona esses rastreamentos. Você também pode alterar facilmente esse evento para 404 ou capturar a falha se a solicitação levar mais de 30 segundos definindo o campo timeTaken em suas falhasDefinitions.
Restaurar seu backup
Agora que você concluiu as tarefas neste artigo, você pode restaurar o backup da configuração. Execute o seguinte comando com direitos de usuário do administrador:
%windir%\system32\inetsrv\appcmd restore backup cleanInstall