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:

  1. Selecione a tecla do logotipo do Windows e a chave X simultaneamente, selecione Prompt de Comando (Administração)e selecione Sim.

    Captura de tela do prompt de comando Administração na barra de tarefas do Windows.

  2. 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

  1. Navegue até %systemdrive%\inetpub\wwwroot.

  2. Mova o conteúdo para um local seguro (caso deseje restaurar o conteúdo existente) ou exclua-o.

  3. Crie um arquivo em branco e nomeie-o test.asp.

  4. No prompt de comando, navegue até o arquivo test.asp em \inetpub\wwwroot.

  5. 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:

  1. Abra o Gerenciador do IIS e selecione o servidor.

  2. Clique duas vezes em Restrições de ISAPI e CGI.

    Captura de tela do painel I I S Manager exibindo restrições I S A P I e C G I selecionadas.

  3. 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.

    Captura de tela do painel Restrições de I S A P I e C G I exibindo Páginas do Servidor Ativo selecionadas. A opção Negar está selecionada no painel Ações.

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

  1. Abra um prompt de comando com os direitos do usuário do administrador e navegue até %systemdrive%\windows\system32\inetsrv.

  2. Execute inetmgr para abrir o IIS Manager.

  3. No painel Connections, expanda o nome do computador, expanda Sites e selecione Site Padrão.

  4. No painel Ações , em Configurar, selecione Rastreamento de Solicitação com Falha....

    Captura de tela do painel Ações mostrando a opção Rastreamento de Solicitação com Falha está realçada na guia Configurar.

  5. 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.

    A captura de tela exibe a caixa de diálogo Editar Configurações de Rastreamento de Solicitação com Falha no Site com comandos que populam o campo Diretório e Habilitar caixa de seleção selecionada.

  6. 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.

  1. Abra um prompt de comando com os direitos do usuário do administrador e navegue até %systemdrive%\windows\system32\inetsrv.

  2. Execute inetmgr para abrir o IIS Manager.

  3. No painel Connections, expanda o nome do computador, expanda Sites e selecione Site Padrão.

  4. Clique duas vezes em Regras de rastreamento de solicitação com falha.

    Captura de tela do painel Home do site padrão mostrando o recurso Regras de Rastreamento de Solicitação com Falha selecionado.

  5. No painel Ações , selecione Adicionar....

  6. 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.

    A captura de tela mostra Adicionar assistente de regra de rastreamento de solicitação com falha. Toda a opção de conteúdo está selecionada na página Especificar Conteúdo para Rastrear.

  7. 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.

    Captura de tela de Adicionar Regra de Rastreamento de Solicitação Com Falha mostrando a página Definir Condições de Rastreamento e 404 pontos 2 inseridos como o código status.

  8. Selecione Avançar.

  9. 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.

  10. 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.

    Captura de tela do Assistente de Regra de Rastreamento de Solicitação Com Falha mostrando o WWW Server selecionado na lista Provedores e Segurança sendo selecionado no menu Áreas.

  11. Selecione Concluir.

  12. Você verá a seguinte definição para o Site Da Web Padrão:

    Captura de tela da página Regras de Rastreamento de Solicitação Com Falha mostrando o WWW Server inserido como Provedor Associado e 404 pontos 2 como Código de Status.

    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

  1. Abra uma nova janela de Explorer da Internet.

  2. Insira e http://localhost/test.asp pressione ENTER. A mensagem de erro "ERRO HTTP 404.2 – Não Encontrado" é exibida.

    Captura de tela da janela Explorer internet que exibe a página de mensagem Erro 404 ponto 2 do H T P não encontrado.

Etapa 2: exibir o arquivo de log de solicitação de falha

  1. Agora que você gerou uma solicitação com falha, abra o Windows Explorer e navegue até %systemdrive%\inetpub\logs\FailedReqLogFiles\W3SVC1.

    Captura de tela da pasta W 3 S V C 1 no diretório Req Log Files com falha.

    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).

  2. 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:

    Captura de tela da caixa de diálogo Explorer internet com Continuar a solicitar quando o conteúdo do site está bloqueado opção selecionada.

  3. Na caixa de diálogo Internet Explorer, adicione about:internet à lista de sites confiáveis pelas seguintes etapas:

    1. Selecione o menu Ferramentas e selecione Opções de Internet.
    2. Selecione a guia Segurança.
    3. Selecione Zona Confiável e, em seguida, selecione Sites.
    4. Isso permite que o XSL funcione.
  4. Você verá uma página resumo de solicitação depois de adicionar sobre:Internet à lista de sites confiáveis:

    Captura de tela da página Resumo da Solicitação com a tabela Erros e Avisos que exibe colunas para Severidade, Nome do evento e módulo.

    Um resumo da solicitação com falha é registrado na parte superior, com a tabela Erros & Avisos identificando quaisquer eventos que sejam WARNING, ERRORou CRITICAL ERROR com gravidade. Neste exemplo, o WARNING nível de gravidade é devido a ISAPI RESTRICTION. A imagem que você tentou carregar foi %windir%\system32\inetsrv\asp.dll.

  5. 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