Compartilhar via


Solucionar problemas de solicitações com falha usando o rastreamento no IIS 7

Aplica-se a: Serviços de Informações da Internet 7.0

Observação

Este artigo se aplica ao IIS 7.0. Para versões mais recentes, consulte Solucionar problemas de solicitações com falha usando o rastreamento no IIS 8.5.

O rastreamento baseado em solicitação está disponível em servidores IIS autônomos e em aplicativos Web do Azure e fornece uma maneira de determinar o que exatamente está acontecendo com suas solicitações e por quê, se você puder reproduzir o problema que está enfrentando. Problemas como baixo desempenho em algumas solicitações ou falhas relacionadas à autenticação em outras ou o erro 500 do servidor do ASP ou do ASP.NET geralmente podem ser difíceis de solucionar, a menos que você tenha capturado o rastreamento do problema no momento em que ele ocorreu. Este artigo discute o Rastreamento de Falhas de Solicitação no servidor IIS. Para obter informações sobre como fazer isso com aplicativos Web do 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 armazenar em buffer os eventos de rastreamento de uma solicitação e gravá-los no disco apenas se a solicitação falhar, caso você forneça a definição de "falha". Se você quiser saber por que está recebendo mensagens de erro 404.2 ou as solicitações começarem a travar, use o Rastreamento de Solicitações com Falha.

As tarefas ilustradas neste artigo incluem o seguinte:

  • Habilitando o módulo de Rastreamento de Solicitações com Falha.
  • Configurando a semântica dos arquivos de log do Rastreamento de Falhas em Solicitações.
  • Definir 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 visualizando o rastreamento resultante.

Pré-requisitos

Instalar o IIS

Você deve instalar o IIS 7 ou versões posteriores antes de executar as tarefas neste artigo. Acesse http://localhost/ para ver se o IIS está instalado. Se o IIS não estiver instalado, consulte Instalando o IIS no Windows Server 2008 para obter instruções de instalação. Ao instalar o IIS, certifique-se de instalar também os seguintes recursos:

  • ASP.NET (em Serviços da World Wide Web - Recursos de Desenvolvimento de Aplicativos - ASP.NET)
  • Rastreamento (em Serviços da World Wide Web - Integridade e Diagnóstico - Rastreamento)

Entrar como administrador

Verifique se a conta que você usa para fazer logon é a conta de administrador ou se ela está no grupo Administradores.

Observação

Estar no grupo Administradores não concede a você direitos completos de usuário administrador por padrão. Você deve executar aplicativos como administrador, o que pode ser feito clicando com o botão direito do mouse no ícone do aplicativo e selecionando Executar como administrador.

Faça um backup

Você deve fazer um backup da configuração antes de executar as tarefas nas seções a seguir.

Para fazer um backup da configuração, siga estas etapas:

  1. Selecione Iniciar>Todos os Programas>Acessórios.

  2. Clique com o botão direito do mouse em Prompt de Comando e selecione Executar como administrador.

    Captura de tela que mostra o menu de contexto do Prompt de Comando, com a opção Executar como administrador já selecionada.

  3. No prompt de comando, execute o seguinte comando:

    %windir%\system32\inetsrv\appcmd add backup cleanInstall
    

Criar conteúdo de amostra

  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 o ASP

O ASP deve ser desabilitado para esta tarefa. O ASP é desabilitado apenas como um exemplo e para os fins das tarefas neste artigo.

Para desabilitar o ASP

  1. Abra o Gerenciador do IIS (Serviços de Informações da Internet) .

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

    Captura de tela que mostra o Gerenciador I I S com as Restrições I S A P I e C G I selecionadas.

  3. Selecione Páginas do Active Server. No painel Ações, selecione Negar para desabilitar o ASP.

    Captura de tela que mostra o painel Restrições e Ações de ISAPI e CGI aberto.

Habilitar o rastreamento de falha na solicitação

Depois de habilitar o Rastreamento de Solicitação com Falha, você precisa configurar onde os arquivos de log residirão. Nesta tarefa, você habilitará o Rastreamento de Solicitação com Falha para o Site Padrão e especificará onde colocar os arquivos de log. Em seguida, você configurará a falha para a qual gerar logs de falha.

Etapa 1: Ativar o rastreamento de solicitações com falha para o site e configurar o diretório de arquivos de log

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

  2. Execute inetmgr para abrir o Gerenciador do IIS.

  3. No painel Conexões, expanda o nome do computador, expanda Sites e selecione Site Padrão da Web.

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

    Captura de tela que mostra o Rastreamento de Solicitação com Falha no Configurar.

  5. Na caixa de diálogo Editar Configurações de Rastreamento de Solicitações com Falha no Site, configure o seguinte:

    • Marque a caixa de seleção Ativar .
    • Mantenha os padrões para as outras configurações.

    Captura de tela que mostra a caixa de diálogo Editar Configurações de Rastreamento de Solicitações com Falha do Site, com a opção Habilitar selecionada.

  6. Clique em OK.

O log de Rastreamento de Solicitação com Falha agora está habilitado para o Site Padrão. Verifique o arquivo %windir%\system32\inetsrv\config\applicationHost.config para confirmar se a configuração é semelhante ao seguinte:

<system.applicationHost>
   <sites> 
      <!-- site & app defaults --> 
      <site name="Default Web Site" id="1"> 
         <!-- other site configuration --> 
         <traceFailedRequestsLogging  enabled="true" /> 
      </site> 
   </sites> 
</system.applicationHost>

Etapa 2: Configurar suas definições de falha

Nesta etapa, você configurará as definições de falha para sua URL, incluindo quais áreas rastrear. Você solucionará problemas em um 404.2 retornado pelo IIS para quaisquer solicitações de extensões que não foram ativadas ainda. Isso ajuda a determinar quais extensões específicas você precisará habilitar.

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

  2. Execute inetmgr para abrir o Gerenciador do IIS.

  3. No painel Conexões, expanda o nome do computador, expanda Sites e selecione Site Padrão da Web.

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

    Captura de tela que mostra o painel Início do Site Padrão, com as Regras de Rastreamento de Solicitação com Falha selecionadas.

  5. Selecione Concluir.

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

  7. No assistente Adicionar regra de rastreamento de solicitação com falha, na página Especificar conteúdos a serem rastreados, selecione Todo o conteúdo (*). Selecione Avançar.

    Captura de tela que mostra o assistente de Adicionar Regra de Rastreamento de Solicitações com Falha, com todo o conteúdo selecionado.

  8. Na página Definir Condições de Rastreamento, marque a caixa de seleção Código(s) de status e insira 404.2 como o código de status a ser rastreado.

    Captura de tela que mostra a página Definir Condições de Rastreamento. No campo Código de status, está selecionado o código de status 404 ponto 2.

  9. Selecione Avançar.

  10. Na página Selecionar Provedores de Trace, em Provedores, selecione a caixa de seleção Servidor WWW. Em Áreas, marque a caixa de seleção Segurança e desmarque todas as outras caixas de seleção.

    O problema que você está causando faz com que um evento de rastreamento de erro de segurança seja acionado. Em geral, os problemas de autenticação e autorização (incluindo problemas de lista de restrição ISAPI) podem ser diagnosticados usando a configuração da área de segurança do Servidor WWW para rastreamento. No entanto, como a folha de estilos FREB.xsl ajuda a destacar erros e avisos, você ainda pode usar a configuração padrão para registrar todos os eventos em todas as áreas e provedores. Em Verbosidade, selecione Verbosidade.

    Captura de tela que mostra a página Selecionar Provedores de Rastreamento. Servidor W W W é selecionado em Provedores e Segurança é selecionada em Verbosidade.

  11. Selecione Concluir. A seguinte definição do Site padrão deve ser exibida:

    Captura de tela que mostra o painel Regras de Rastreamento de Solicitação com Falha. O servidor W W W está listado em Provedores Associados.

O Gerenciador do IIS grava a configuração no arquivo %windir%\system32\inetsrv\config\applicationHost.config usando uma marca <location>. A configuração deve ser semelhante ao seguinte:

<location path="Default Web Site"> 
    <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> 
</location>

Testar e exibir o arquivo de log de solicitação de falha

Nesta tarefa, você gerará uma solicitação com falha e exibirá o log de rastreamento resultante. Você já configurou o IIS para capturar logs de rastreamento para solicitações http://localhost/*.asp que falham com um código de resposta HTTP de 404.2. Agora verifique se tudo está funcionando.

Etapa 1: Gerar um erro e o arquivo de log de solicitação de falha

  1. Abra uma janela do Internet Explorer.

  2. Digite o seguinte endereço: http://localhost/test.asp.

  3. Você recebe um erro "Erro HTTP 404.2 - Não encontrado".

    Captura de tela que mostra uma página da Web intitulada Erro de servidor no site padrão do aplicativo. Em Resumo de erros, diz Erro HTTP 404 ponto 2 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 um prompt de comando com direitos de usuário administrador e navegue até %systemdrive%\inetpub\logs\FailedReqLogFiles\W3SVC1.

  2. Execute start para iniciar uma janela do Internet Explorer a partir do diretório.

    Captura de tela que mostra o Internet Explorer navegando até o caminho W 3 S V C 1. Dois arquivos são listados, freb e f r 0 0 0 0 0 1.

  3. Observe o seguinte: 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 estilo freb.xsl também é gravada, uma por diretório. Isso ajuda quando você exibe os arquivos de log de solicitação de falha resultantes (como fr000001.xml neste exemplo).

  4. Clique com o botão direito do mouse no arquivo de log do erro 404.2 e selecione Abrir com>o Internet Explorer. Se esta for a primeira vez que você está abrindo um arquivo de Rastreamento de Solicitação com Falha, deverá adicionar about:internet à lista de sites confiáveis, já que a Configuração de Segurança Aprimorada do Internet Explorer está habilitada por padrão. Em caso afirmativo, você verá o seguinte:

    Captura de tela que mostra uma caixa de diálogo para a Configuração de Segurança Reforçada do Internet Explorer. Sobre: a internet está bloqueada.

  5. Na caixa de diálogo do Internet Explorer , selecione Adicionar... para adicionar about:internet à lista de sites confiáveis. Isso permite que o XSL funcione. Você verá o seguinte depois de adicionar about:internet à lista de sites confiáveis:

    Captura de tela que mostra o Internet Explorer. A guia Resumo da solicitação é selecionada e dois avisos são listados.

    Um resumo da solicitação com falha é registrado na parte superior, com a tabela Erros e Avisos identificando os eventos que são AVISO, ERRO ou ERRO CRÍTICO em Gravidade. Neste exemplo, o nível de gravidade AVISO é devido à RESTRIÇÃO ISAPI. A imagem que você tentou carregar foi %windir%\system32\inetsrv\asp.dll.

  6. Abra o arquivo XML bruto diretamente usando um editor de texto e examine o conteúdo de cada evento.

Resumo

Você concluiu duas tarefas: configurou o Rastreamento de Solicitação com Falha para capturar rastreamentos para qualquer solicitação que o IIS retorna com um código de status 404.2 e verificou se o IIS capturou o rastreamento para sua solicitação. Você também verificou que o arquivo de log do freb.xml não continha nenhuma outra solicitação para as solicitações feitas porque as solicitações não tinham um código de retorno 404.2. Ao consultar o arquivo de log de falhas, você determinou que a causa da falha foi que a extensão foi desabilitada para essa solicitação. Você pode tentar outras páginas não HTML (como arquivos .gif ou .jpg) e observar que o arquivo de log NÃO adiciona esses rastreamentos. Você também pode alterar facilmente isso para 404 ou capturar a falha se a solicitação demorar mais de 30 segundos definindo o campo timeTaken em failureDefinitions.

Restaure seu backup

Agora que você concluiu as tarefas neste artigo, é possível restaurar o backup da configuração. Execute o seguinte comando com direitos do usuário administrador:

%windir%\system32\inetsrv\appcmd restore backup cleanInstall