Compartilhar via


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 em servidores IIS autônomos e 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 geralmente podem ser difíceis de solucionar, a menos que você tenha capturado o rastreamento do problema quando ele ocorrer. Este artigo discute o rastreamento de solicitação com falha no servidor IIS. Para obter informações sobre como fazer isso com 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 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 suas solicitações estão retornando um código de status HTTP específico, por exemplo, 401 ou 404, ou se uma solicitação está demorando um pouco para ser processada 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 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

Instale o IIS 8.5 antes de executar as tarefas descritas neste artigo. Procure por http://localhost/ e verifique se a tela inicial 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, certifique-se de instalar também os seguintes recursos:

  • ASP.NET 3.5 (em Servidor Web (IIS)/Recursos/de desenvolvimento de aplicativos de servidor/Web ASP.NET 3.5)
  • ASP.NET 4.5 (em Servidor Web (IIS)/Recursos/de desenvolvimento de aplicativos de servidor/Web ASP.NET 4.5)
  • Rastreamento (em Servidor Web (IIS)/Integridade e diagnóstico do servidor/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 de usuário administrador completos 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.

Faça 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 tecla X simultaneamente, selecione Prompt de Comando (Admin) e, em seguida, selecione Sim.

    Captura de tela do Command Prompt Admin na barra de tarefas do Windows.

  2. No prompt de comando, execute o comando a seguir:

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

    Esse comando cria uma pasta cleanInstall contendo arquivos de configuração de backup em %windir%\system32\inetsrv\backup.

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, siga estas etapas:

  1. Abra o Gerenciador 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 as restrições I S, A, P I e C G I selecionadas.

  3. No painel Restrições de ISAPI e CGI, selecione Active Server Pages. 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 I, S, A, P, I e C, G, I, exibindo as Páginas do Servidor Ativo selecionadas. A opção Negar está selecionada no painel Ações.

Habilitar o rastreamento de falha na solicitação

Depois de habilitar o Rastreamento de Solicitação com Falha, você precisa 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, em seguida, 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....

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

  5. Na caixa de diálogo Editar configurações de rastreamento de solicitação com falha do site, configure o seguinte:

    • Marque a caixa de seleção Ativar .
    • 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 o comando preenchendo o campo Diretório e a caixa de seleção Habilitar marcada.

  6. Selecione 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>
       <!-- 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 de status 404.2 retornado pelo IIS para todas as solicitações de extensões que ainda não foram habilitadas. Ele ajuda a determinar quais extensões específicas você precisa habilitar. Para obter mais informações, consulte Códigos de status HTTP no IIS.

  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 do painel inicial 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 a Ser Rastreado, selecione Todo o conteúdo (*) e, em seguida, selecione Avançar.

    A captura de tela mostra o Assistente para Adicionar Regra de Rastreamento de Solicitação com Falha. Toda a opção de conteúdo é selecionada na página Especificar conteúdo a ser rastreado.

  7. 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 de Adicionar Regra de Rastreamento de Solicitação com Falha mostrando a página Definir Condições de Rastreamento e 404 ponto 2 inserido como o código de status.

  8. Selecione Avançar.

  9. Na página Selecionar Provedores de Rastreamento , em Provedores, marque a caixa de seleção Servidor WWW e desmarque todas as outras caixas de seleção. 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.

  10. Em Detalhamento, selecione Detalhado.

    Observação

    Quando você instala o serviço de função de rastreamento, o IIS instala os provedores de rastreamento do servidor WWW, do ASP e da extensão ISAPI por padrão. Se você instalar o ASP.NET 2.0 ou mais recente, o IIS adicionará automaticamente o provedor de rastreamento ASP.NET. Provedores adicionais são instalados pelo pacote de instalação do ARR (Application Request Routing), que também instala o módulo de reescrita de URL, o gerenciamento de web farm e o cache externo. Você pode adicionar mais provedores de rastreamento usando o elemento <add> dentro do elemento <traceProviderDefinitions>.

    Captura de tela do Assistente para Adicionar Regra de Rastreamento de Solicitação com Falha mostrando o Servidor WWW selecionado na lista Provedores e a Segurança sendo selecionada no menu Áreas.

  11. Selecione Concluir.

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

    Captura de tela da página Regras de rastreamento de solicitação com falha mostrando o servidor WWW inserido como provedor associado e 404 ponto 2 como código de status.

    O Gerenciador do IIS grava a configuração no arquivo %systemdrive%\inetpub\wwwroot\web.config usando uma marca <location>. A configuração deve ser semelhante à seguinte:

    <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 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 http://localhost/test.asp e pressione ENTER. A mensagem de erro "Erro HTTP 404.2 - Não encontrado" é exibida.

    Captura de tela da janela do Internet Explorer exibindo a página de mensagem HTT P Erro 404 ponto 2 traço 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 SVC 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 é 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).

  2. 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 da caixa de diálogo do Internet Explorer com a opção Continuar para avisar quando o conteúdo do site estiver bloqueado selecionada.

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

    1. Selecione o menu Ferramentas e, em seguida, selecione Opções da 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 de resumo da solicitação depois de adicionar about:internet à lista de sites confiáveis:

    Captura de tela da página Resumo da solicitação com a tabela Erros e avisos exibindo colunas para Gravidade, Evento e Nome do módulo.

    Um resumo da solicitação com falha é registrado na parte superior, com a tabela Erros e Avisos identificando todos os eventos que são WARNING, ERROR, ou CRITICAL ERROR em gravidade. Neste exemplo, o nível de WARNING gravidade é devido à 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 de cada evento.

Resumo

Você concluiu duas tarefas: configurar 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 verificar se o IIS capturou o rastreamento para sua solicitação. Você também verificou que o arquivo de log freb.xml não continha nenhuma solicitação além daquelas com 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 estava desabilitada para a 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. Também é possível alterar facilmente esse evento para 404 ou capturar a falha caso a solicitação demore mais de 30 segundos, definindo o campo timeTaken em failedDefinitions.

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