Compartilhar via


Definições de falha <failureDefinitions>

Visão geral

O elemento <failureDefinitions> define as condições nas quais rastrear solicitações. Uma condição de falha consiste em códigos de status, um intervalo de tempo ou uma combinação de ambos. Além disso, você pode especificar o nível de detalhamento para rastreamento.

Observação

Adicionar opções de detalhamento adicionais configurará o IIS para retornar mais informações em seus logs de rastreamento, mas os logs detalhados podem se tornar muito grandes. Se os arquivos de log excederem o tamanho máximo de arquivo definido pelo atributo maxLogFileSizeKB do elemento <traceFailedRequestsLogging>, os arquivos de log serão truncados no tamanho máximo e você precisará aumentar o tamanho do arquivo especificado nesse atributo.

Compatibilidade

Versão Observações
IIS 10.0 O atributo traceAllAfterTimeout foi adicionado ao elemento <failureDefinitions> no IIS 10.0.
IIS 8.5 O elemento <failureDefinitions> não foi modificado no IIS 8.5.
IIS 8.0 O elemento <failureDefinitions> não foi modificado no IIS 8.0.
IIS 7.5 O elemento <failureDefinitions> não foi modificado no IIS 7.5.
IIS 7.0 O elemento <failureDefinitions> foi introduzido no IIS 7.0.
IIS 6,0 N/D

Instalação

Depois de concluir a instalação padrão do IIS 7 e posterior, você deve instalar o serviço de função de rastreamento para usar o rastreamento de solicitação com falha. Depois de instalar o serviço de função, você ainda deve habilitar o rastreamento de solicitação com falha no nível do site, do aplicativo ou do diretório.

Windows Server 2012 R2 ou Windows Server 2012

  1. Na barra de tarefas, clique em Gerenciador do Servidor.
  2. No Gerenciador do Servidor, clique no menu Gerenciar e clique em Adicionar Funções e Recursos.
  3. No assistente Adicionar Funções e Recursos, clique em Avançar. Selecione o tipo de instalação e clique em Avançar. Selecione o servidor de destino e clique em Avançar.
  4. Na página Funções de Servidor, expanda Servidor Web (IIS), Servidor Web, Integridade e Diagnóstico e selecione Rastreamento. Clique em Avançar.
    Image of Health and Diagnostics pane in Server Roles page expanded with Tracing highlighted. .
  5. Na página Selecionar recursos, clique em Avançar.
  6. Na página Confirmar seleções de instalação, clique em Instalar.
  7. Na página Resultados , clique em Fechar.

Windows 8 ou Windows 8.1

  1. Na tela Iniciar, mova o ponteiro até o canto inferior esquerdo, clique com o botão direito do mouse no botão Iniciar e clique em Painel de Controle.
  2. Em Painel de Controle, clique em Programas e Recursos e clique em Ativar ou desativar recursos do Windows.
  3. Expanda Serviços de Informações da Internet, expanda Serviços da World Wide Web, expanda Integridade e Diagnóstico e selecione Rastreamento.
    Image of World Wide Web Services and Health and Diagnostics pane expanded with Tracing selected.- Clique em OK.
  4. Clique em Fechar.

Windows Server 2008 R2 ou Windows Server 2008

  1. Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador do Servidor.
  2. No painel de hierarquia do Gerenciador do Servidor, expanda Funções e clique em Servidor Web (IIS).
  3. No painel Servidor Web (IIS), role até a seção Serviços de Função e clique em Adicionar Serviços de Função.
  4. Na página Selecionar Serviços de Função do Assistente para Adicionar Serviços de Função, selecione Rastreamento e clique em Avançar.
    Screenshot of Health and Diagnostics pane in Add Role Services Wizard expanded with Tracing selected.
  5. Na página Confirmar Seleções de Instalação, clique em Instalar.
  6. Na página Resultados , clique em Fechar.

Windows Vista ou Windows 7

  1. Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.
  2. Em Painel de Controle, clique em Programas e Recursos e clique em Ativar ou desativar Recursos do Windows.
  3. Expanda Serviços de Informações da Internet, Serviços da World Wide Web e Integridade e Diagnóstico.
  4. Selecione Rastreamentoe clique em OK.
    Screenshot of World Wide Web Services and Health and Diagnostics pane expanded displaying Tracing selected.

Instruções

Como habilitar o rastreamento

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

    • Caso você esteja usando o Windows Server 2012 ou o Windows Server 2012 R2:

      • Na barra de tarefas, clique em Gerenciador do Servidor, em Ferramentas e em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Se você estiver usando o Windows 8 ou Windows 8.1:

      • Mantenha pressionada a tecla Windows, pressione a letra X e clique em Painel de Controle.
      • Clique em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Caso você esteja usando o Windows Server 2008 ou o Windows Server 2008 R2:

      • Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Se você estiver usando o Windows Vista ou Windows 7:

      • Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.
      • Clique duas vezes em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
  2. No painel Conexões, selecione a conexão do servidor, o site, o aplicativo ou o diretório para o qual você deseja configurar o rastreamento de solicitação com falha.

  3. No painel Ações, clique em Rastreamento de Solicitação com Falha...
    Image of Default Web Site Home page displaying I I S Manager console.

  4. Na caixa de diálogo Editar Configurações de Rastreamento de Solicitação com Falha do Site, marque a caixa de seleção Habilitar para habilitar o rastreamento, deixe o valor padrão ou digite um novo diretório em que você deseja armazenar arquivos de log de solicitação com falha na caixa Diretório, digite o número de arquivos de rastreamento de solicitação com falha que você deseja armazenar na caixa Número máximo de arquivos de rastreamento e clique em OK.
    Image of Edit Web Site Failed Request Tracing Settings dialog box with command populating Directory field and Maximum number of trace files displayed.

Como configurar as definições de falha

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

    • Caso você esteja usando o Windows Server 2012 ou o Windows Server 2012 R2:

      • Na barra de tarefas, clique em Gerenciador do Servidor, em Ferramentas e em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Se você estiver usando o Windows 8 ou Windows 8.1:

      • Mantenha pressionada a tecla Windows, pressione a letra X e clique em Painel de Controle.
      • Clique em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Caso você esteja usando o Windows Server 2008 ou o Windows Server 2008 R2:

      • Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Se você estiver usando o Windows Vista ou Windows 7:

      • Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.
      • Clique duas vezes em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
  2. No painel Conexões, acesse a conexão, o site, o aplicativo ou o diretório para o qual você deseja configurar o rastreamento de solicitação com falha.

  3. No painel Página Inicial, clique duas vezes em Regras de Rastreamento de Solicitação com Falha.
    Screenshot of Home pane displaying I I S Manager console.

  4. No painel Ações, clique em Adicionar.

  5. Na página Especificar Conteúdo a Rastrear do Assistente para Adicionar Regra de Rastreamento de Solicitação Com Falha, selecione o tipo de conteúdo que deseja rastrear e, em seguida, clique em Avançar.
    Screenshot of Specify Content to Trace page showing All Content option selected.

  6. Na página Definir Condições de Rastreamento, selecione as condições que deseja rastrear e clique em Avançar. As condições de rastreamento podem incluir qualquer combinação de códigos de status, um limite de tempo que uma solicitação deve levar ou a gravidade do evento. Se você especificar todas as condições, a primeira condição que for atendida gerará o arquivo de log de rastreamento de solicitações com falha.
    Image of Define Trace Conditions in Add Failed Request Tracing Rule Wizard.

  7. Na página Selecionar Provedores de Rastreamento, selecione um ou mais dos provedores de rastreamento em Provedores.
    Image of Select Trace Providers page with A S P and A S P NET selected as providers.

  8. Na página Selecionar Provedores de Rastreamento, selecione um ou mais níveis de detalhamento em Detalhamento.
    Screenshot of Select Trace Providers page displaying A S P and A S P NET selected under Verbosity levels.

  9. Se você selecionou o provedor de rastreamento ASPNET ou Servidor WWW na etapa 8, selecione uma ou mais áreas funcionais para o provedor rastrear em Áreas da página Selecionar Provedores de Rastreamento.

  10. Clique em Concluir.

Configuração

Atributos

Atributo Descrição
statusCodes Atributo de cadeia de caracteres opcional.

Especifica o(s) código(s) de status que você deseja rastrear. Você pode inserir vários códigos de status nessa lista usando vírgulas para separar cada código. Você também pode refinar seus códigos de status usando códigos de substatus, como “404.2, 500” ou um intervalo de códigos de substatus, como “400-599”. Se você não especificar códigos de substatus, todos os códigos de substatus para o código de status fornecido serão rastreados. Os códigos de status devem ser de 100 a 999 e os códigos de substatus devem ser de 1 a 999.
timeTaken Atributo timeSpan opcional.

Especifica o tempo máximo que uma solicitação poderá gastar no processamento antes de ser marcada como falha e, em seguida, rastreada.

O valor padrão é 00:00:00.
traceAllAfterTimeout Atributo bool opcional.

true se o IIS deverá continuar rastreando toda a solicitação quando um tempo limite for atingido; caso contrário, false se o IIS deverá truncar o rastreamento quando o tempo limite ocorrer.

O valor padrão é false.
verbosity Atributo de enumeração opcional.

Especifica a quantidade mínima de informações e o tipo de informações salvas no log de rastreamento. Se o detalhamento for definido como Error, um arquivo de log de rastreamento de solicitação com falha para a solicitação será criado quando o primeiro evento de rastreamento cujo detalhamento for Error ou CriticalError for recebido.

O atributo verbosity pode ser um dos valores possíveis a seguir.

O valor padrão é Ignore.
Valor Descrição
Ignore Não fornece informações sobre a atividade da solicitação.

O valor numérico é 0.
CriticalError Fornece informações sobre as ações que podem causar a saída de um processo ou as que estejam prestes a causar essa saída.

O valor numérico é 1.
Error Fornece informações sobre os componentes que apresentam um erro e não podem continuar processando as solicitações. Esses erros geralmente indicam um problema do lado do servidor.

O valor numérico é 2.
Warning Fornece informações sobre componentes que apresentam um erro, mas que podem continuar processando a solicitação.

O valor numérico é 3.

Elementos filho

Nenhum.

Exemplo de configuração

O exemplo de configuração a seguir configura o rastreamento no nível do servidor no arquivo ApplicationHost.config. Ele define o rastreamento para todos os arquivos .aspx, usa o elemento <traceAreas> para definir o provedor ASPNET e rastrear em todas as áreas ASP.NET, que são Infraestrutura, Módulo, Página e AppServices. O exemplo também usa o atributo verbosity para definir a quantidade de informações retornadas ao arquivo de rastreamento como aviso. Por fim, o exemplo usa o elemento <failureDefinitions> para rastrear somente solicitações que geram um código de status HTTP 404.

<tracing>
   <traceFailedRequests>
      <add path="*.aspx">
         <traceAreas>
            <add provider="ASPNET" areas="Infrastructure,Module,Page,AppServices" verbosity="Warning" />
         </traceAreas>
         <failureDefinitions statusCodes="404" />
      </add>
   </traceFailedRequests>
</tracing>

Exemplo de código

Os exemplos a seguir habilitam o rastreamento detalhado de solicitações com falha para erros HTTP 500 em conteúdo ASP.NET em todas as solicitações para páginas *.aspx.

AppCmd.exe

appcmd.exe set config "Contoso" -section:system.webServer/tracing/traceFailedRequests /+"[path='*.aspx']" 

appcmd.exe set config "Contoso" -section:system.webServer/tracing/traceFailedRequests /+"[path='*.aspx'].traceAreas.[provider='ASPNET',areas='Infrastructure,Module,Page,AppServices',verbosity='Verbose']" 

appcmd.exe set config "Contoso" -section:system.webServer/tracing/traceFailedRequests /[path='*.aspx'].failureDefinitions.statusCodes:"500"

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample
{
   private static void Main()
   {
      using (ServerManager serverManager = new ServerManager())
      {
         Configuration config = serverManager.GetWebConfiguration("Contoso");
         ConfigurationSection traceFailedRequestsSection = config.GetSection("system.webServer/tracing/traceFailedRequests");
         ConfigurationElementCollection traceFailedRequestsCollection = traceFailedRequestsSection.GetCollection();

         ConfigurationElement addElement = traceFailedRequestsCollection.CreateElement("add");
         addElement["path"] = @"*.aspx";

         ConfigurationElementCollection traceAreasCollection = addElement.GetCollection("traceAreas");
         ConfigurationElement addElement1 = traceAreasCollection.CreateElement("add");
         addElement1["provider"] = @"ASPNET";
         addElement1["areas"] = @"Infrastructure,Module,Page,AppServices";
         addElement1["verbosity"] = @"Verbose";
         traceAreasCollection.Add(addElement1);

         ConfigurationElement failureDefinitionsElement = addElement.GetChildElement("failureDefinitions");
         failureDefinitionsElement["statusCodes"] = @"500";
         traceFailedRequestsCollection.Add(addElement);

         serverManager.CommitChanges();
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample
   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetWebConfiguration("Contoso")
      Dim traceFailedRequestsSection As ConfigurationSection = config.GetSection("system.webServer/tracing/traceFailedRequests")
      Dim traceFailedRequestsCollection As ConfigurationElementCollection = traceFailedRequestsSection.GetCollection

      Dim addElement As ConfigurationElement = traceFailedRequestsCollection.CreateElement("add")
      addElement("path") = "*.aspx"
      Dim traceAreasCollection As ConfigurationElementCollection = addElement.GetCollection("traceAreas")
      Dim addElement1 As ConfigurationElement = traceAreasCollection.CreateElement("add")
      addElement1("provider") = "ASPNET"
      addElement1("areas") = "Infrastructure,Module,Page,AppServices"
      addElement1("verbosity") = "Verbose"
      traceAreasCollection.Add(addElement1)

      Dim failureDefinitionsElement As ConfigurationElement = addElement.GetChildElement("failureDefinitions")
      failureDefinitionsElement("statusCodes") = "500"
      traceFailedRequestsCollection.Add(addElement)

      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Contoso";
var traceFailedRequestsSection = adminManager.GetAdminSection("system.webServer/tracing/traceFailedRequests", "MACHINE/WEBROOT/APPHOST/Contoso");
var traceFailedRequestsCollection = traceFailedRequestsSection.Collection;

var addElement = traceFailedRequestsCollection.CreateNewElement("add");
addElement.Properties.Item("path").Value = "*.aspx";
var traceAreasCollection = addElement.ChildElements.Item("traceAreas").Collection;

var addElement1 = traceAreasCollection.CreateNewElement("add");
addElement1.Properties.Item("provider").Value = "ASPNET";
addElement1.Properties.Item("areas").Value = "Infrastructure,Module,Page,AppServices";
addElement1.Properties.Item("verbosity").Value = "Verbose";
traceAreasCollection.AddElement(addElement1);

var failureDefinitionsElement = addElement.ChildElements.Item("failureDefinitions");
failureDefinitionsElement.Properties.Item("statusCodes").Value = "500";
traceFailedRequestsCollection.AddElement(addElement);

adminManager.CommitChanges();

VBScript

Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Contoso"
Set traceFailedRequestsSection = adminManager.GetAdminSection("system.webServer/tracing/traceFailedRequests", "MACHINE/WEBROOT/APPHOST/Contoso")
Set traceFailedRequestsCollection = traceFailedRequestsSection.Collection

Set addElement = traceFailedRequestsCollection.CreateNewElement("add")
addElement.Properties.Item("path").Value = "*.aspx"
Set traceAreasCollection = addElement.ChildElements.Item("traceAreas").Collection

Set addElement1 = traceAreasCollection.CreateNewElement("add")
addElement1.Properties.Item("provider").Value = "ASPNET"
addElement1.Properties.Item("areas").Value = "Infrastructure,Module,Page,AppServices"
addElement1.Properties.Item("verbosity").Value = "Verbose"
traceAreasCollection.AddElement addElement1

Set failureDefinitionsElement = addElement.ChildElements.Item("failureDefinitions")
failureDefinitionsElement.Properties.Item("statusCodes").Value = "500"
traceFailedRequestsCollection.AddElement addElement

adminManager.CommitChanges()