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 solicitação com falha 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 liberá-los apenas para o disco se a solicitação falhar, onde você fornece a definição de "falha". Se você quiser saber por que está recebendo mensagens de erro 404.2 ou solicitação de início de travamento, use Rastreamento de solicitação com falha.

As tarefas ilustradas neste artigo incluem o seguinte:

  • Habilitando o módulo Rastreamento de Solicitação com Falha.
  • Configurando a semântica do arquivo de log do Rastreamento de Solicitação com Falha.
  • 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 exibindo 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 Recursos - de desenvolvimento de aplicativos de serviços - da World Wide Web ASP.NET)
  • Rastreamento (em Rastreamento de - Diagnóstico e Integridade dos Serviços - da World Wide Web)

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 acessórios de programas>.

  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 Executar como administrador selecionado.

  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 I S, A, P I 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: 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 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.

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

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

  5. Na caixa de diálogo Editar Configurações de Rastreamento de Solicitação 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ção 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 de um 404.2 retornado pelo IIS para todas as solicitações de extensões que ainda não foram habilitadas. 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.

  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 e as Regras de Rastreamento de Solicitação com Falha estão 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 Adicionar Regra de Rastreamento de Solicitação 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. O código de status é selecionado com 404 ponto 2 no campo Código de status.

  9. Selecione Avançar.

  10. Na página Selecionar Provedores de Rastreamento , em Provedores, marque 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á gerando faz com que um evento de rastreamento de erro de segurança seja gerado. 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 Detalhamento, selecione Detalhado.

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

  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 HTP 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 estilos 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 de dois pontos 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 todos os eventos que são AVISO, ERRO ou ERRO CRÍTICO em Gravidade. Neste exemplo, o nível de gravidade WARNING é devido a ISAPI RESTRICTION. 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