Visão geral do rastreamento no ASP.NET

Rastreamento do ASP.NET permite que você exibir informações de diagnóstico sobre uma única solicitação para um página ASP.NET.Rastreamento ASP.NET possibilita que você siga o caminho de execução de uma página, exiba informações de diagnóstico em tempo de execução, e depure seu aplicativo.Rastreamento ASP.NET pode ser integrado com rastreamento para fornecer vários níveis de rastreamento da saída de aplicativos distribuídos e para diversas arquiteturas (multicamada).

Esse tópico contém:

  • Recursos

  • Segundo plano

  • Exemplos de código

  • Referência de Classe

Recursos

Rastreamento do ASP.NET oferece os seguintes recursos:

  • Debugging statments    Você pode escrever instruções de depuração no seu código sem removê-los do seu aplicativo quando ele é implantado para servidores de produção.Você também pode criar estruturas ou variáveis em uma página e rastrear através do caminho de execução do seu aplicativo ou página.

  • Integrated tracing functionality   Você pode rotear mensagens emitidas pela classe System.Diagnostics.Trace ao ASP.NET rastreamento saída e rotear mensagens emitidas pelo rastreamento do ASP.NET para System.Diagnostics.Trace.Você também pode encaminhar eventos de instrumentação do ASP.NET para System.Diagnostics.Trace.Para obter mais informações, consulte Demonstra Passo a passo: Integrando Rastreamento ASP.NET com rastreamento sistema.Diagnóstico.

  • Programmatic access to trace messages    Você pode acessar e manipular mensagens de rastreamento através do seu código para exercer um melhor controle sobre o formato das mensagens de rastreamento ou para processamentos adicionais que você precisar.

  • Application-level tracing   A nova opção de rastreamento em nível de aplicativo permite que você exiba os dados de rastreamento mais recentes disponíveis sem reiniciar uma sessão de rastreamento e sem aumentar a quantidade de dados de rastreamento que este servidor deve armazenar.Os dados mais recentes de rastreamento são exibidos, enquanto antigos dados rastreamento serão descartados.

Voltar ao topo

Segundo plano

Rastreamento adiciona as informações de diagnóstico e mensagens de rastreamento personalizadas à saída da página e envia estas informações ao navegador do solicitante.Opcionalmente, você pode exibir essas informações de um visualizador de rastreamento separado (Trace.axd) que exibe informações do rastreamento para cada página de um determinado aplicativo.Informações de rastreamento podem ajudar a você investigar erros ou resultados indesejados enquanto ASP.NET processa uma solicitação de página.

Você pode configurar páginas individuais para exibirem informações de rastreamento.Como alternativa, você pode configurar o arquivo Web.config do aplicativo para que todas as páginas exibam informações de rastreamento a menos que a página explicitamente desative o rastreamento.Definir rastreamento em nível de aplicativo é útil porque você não tem que alterar páginas individuais para ativá-lo e desativá-lo.

As instruções de rastreamento são processadas e exibidas somente quando o rastreamento está ativado.Você pode controlar se rastreamento será exibido numa página, no visualizador de rastreamento, ou em ambos.Para obter informações adicionais sobre como ativar o rastreamento para uma página, consulte Como: Habilitar o rastreamento para uma página ASP.NET.Para obter informações adicionais sobre como ativar o rastreamento para um aplicativo, consulte Como: Habilitar o rastreamento para um aplicativo ASP.NET.

Rastreamento ASP.NET em Nível de Aplicativo

Você habilita o rastreamento em nível de aplicativo usando o elemento trace no arquivo Web.config.Quando você ativa rastreamento a nível de aplicativo, o ASP.NET coleta informações de rastreamento para cada solicitação ao aplicativo, até o número máximo de solicitações que você especificar.O número de solicitações padrão é 10.Por padrão, quando o visualizador de rastreamento atinge seu limite de solicitações, o aplicativo para de armazenar solicitações de rastreamento.Você pode configurar o rastreamento para armazenar os dados de rastreamento mais antigos (descartando itens mais recentes) ou as informações de rastreamento mais recentes (descartando itens mais antigos).

Observação:

Quando você ativa o rastreamento para todo o aplicativo na Web. arquivo de configuração, informações de rastreamento são coletadas e processadas para cada página nesse aplicativo.Para substituir as configurações de todo o aplicativo, defina o Trace atributo naquela página @ Page diretiva false. Quaisquer instrucões Write ou Warn que você inclui em um código de página são armazenadas e retornadas somente para o visualizador de rastreamento.

Exibindo Informações de Rastreamento

Você pode exibir informações de rastreamento na parte inferior das páginas individuais.Como alternativa, você pode usar o visualizador de rastreamento (Trace.axd) para exibir informações de rastreamento que ão coletadas e armazenadas em cache pelo ASP.NET quando o rastreamento estiver ativado.Para obter detalhes sobre o que a exibição de rastreamento inclui, consulte Reading ASP.NET Trace Information posteriormente neste tópico.

Se você desejar que as informações de rastreamento apareçam no final da página à qual elas estão associadas, você pode definir o atributo PageOutput do elemento trace como true.Se você ativar o rastreamento em nível de aplicativo, mas se você não desejar que informações de rastreamento sejam exibidas para algumas páginas, você pode definir o atributo Trace na diretiva @ Page dessas páginas para false.Para obter mais informações sobre como configurar um aplicativo do ASP.NET, consulte Visão Geral da Configuração ASP.NET.

Por padrão, rastreamento em nível de aplicativo pode ser exibidos somente no computador do servidor Web local.Para tornar as informações de rastreamento em nível de aplicativo visíveis a partir de computadores remotos, você pode definir o atributo LocalOnly do elemento trace para false.

Observação:

Para ajudar a manter a Web aplicativo seguro, use a capacidade de rastreamento remoto somente quando estiver desenvolvendo ou implantando seu aplicativo.Tornar Verifique se que você desativá-lo antes de você transferência seu aplicativo para servidores Web de produção .Para fazer Isso , Definir o LocalOnly atributo à true no arquivo Web.config.

O exemplo a seguir mostra uma configuração de rastreamento do aplicativo que coleta informações de rastreamento para até 40 solicitações.Ele também permite que navegadores em computadores que não seja o servidor para exibir o visualizador de rastreamento.

<configuration>
  <system.web>
    <trace enabled="true" requestLimit="40" localOnly="false" />
  </system.web>
</configuration>

Gravando Mensagens de Rastreamento do ASP.NET Personalizadas

Você pode anexar informações de rastreamento personalizada para a exibição de rastreamento em um página ASP.NET ou para o log de rastreamento.As informações de rastreamento que são gravadas no log de rastreamento são visíveis com o visualizador de rastreamento.Para obter mais informações, consulte Como: Modo de exibição ASP.NET Trace Information with the Trace Viewer.

Você pode gravar as informações de rastreamento usando o métodos Warn ou Write da classe TraceContext.A diferença entre os dois métodos é que uma mensagem escrita com o método Warn aparece no texto em vermelho.

O exemplo a seguir mostra como usar a classe TraceContext para exibir as informações de rastreamento no final de uma página ASP.NET.Será apresentada uma exceção diferente para cada controle LinkButton que causou o postback.A mensagem de erro que é usada para inicializar instância ArgumentException or InvalidOperationException é exibida no log de rastreamento.

<%@ Page Language="VB" Trace="true" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<script >

  Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)

    Try
      If (IsPostBack) Then

        Select Case Request.Form("__EVENTTARGET")
          Case "WarnLink"
            Throw New ArgumentException("Trace warn.")
          Case "WriteLink"
            Throw New InvalidOperationException("Trace write.")
          Case Else
            Throw New ArgumentException("General exception.")
        End Select  
      End If
    Catch ae As ArgumentException
      Trace.Warn("Exception Handling", "Warning: Page_Load.", ae)
    Catch ioe As InvalidOperationException
      Trace.Write("Exception Handling", "Exception: Page_Load.", ioe)
    End Try
  End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head >
    <title>Trace Example</title>
</head>
<body>
    <form id="form1" >
    <div>
      <asp:LinkButton id="WriteLink" 
                      
                      text="Generate Trace Write" />
      <asp:LinkButton id="WarnLink"
                      
                      text="Generate Trace Warn" />
    </div>
    </form>
</body>
</html>
<%@ Page Language="C#" Trace="true"  %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<script >
void Page_Load(object sender, EventArgs e)
{
    try {
      if (IsPostBack)
      {

        switch (Request.Form["__EVENTTARGET"])
        {
          case "WarnLink":
            throw new ArgumentException("Trace warn.");
            break;
          case "WriteLink":
            throw new InvalidOperationException("Trace write.");
            break;
          default:
            throw new ArgumentException("General exception.");
            break;          
        }
      }
    }
    catch (ArgumentException ae) {    
        Trace.Warn("Exception Handling", "Warning: Page_Load.", ae);
    }
    catch (InvalidOperationException ioe) {    
        Trace.Write("Exception Handling", "Exception: Page_Load.", ioe);
    }
}

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head >
    <title>Trace Example</title>
</head>
<body>
    <form id="form1" >
    <div>
      <asp:LinkButton id="WriteLink" 
                      
                      text="Generate Trace Write" />
      <asp:LinkButton id="WarnLink"
                      
                      text="Generate Trace Warn" />
    </div>
    </form>
</body>
</html>

Lendo Informações de Rastreamento do ASP.NET

Você pode visualizar informações de rastreamento que são anexadas no final de uma página ASP.NET ou no visualizador de rastreamento (trace viewer).Em ambos os casos, as informações exibidas são as mesmas.O ASP.NET organiza as informações de rastreamento em uma série de tabelas.Para obter informações adicionais sobre como exibir informações de rastreamento em uma página, consulte Como: Habilitar o rastreamento para uma página ASP.NET.Para obter informações sobre como visualizar informações de rastreamento no visualizador de rastreamento, consulte Como: Modo de exibição ASP.NET Trace Information with the Trace Viewer.

Informação de rastreamento aparecem na seguinte ordem.

Request Details (Detalhes de Solicitação)

A seção Request Details (Detalhes de Solicitação) exibe informações gerais sobre a solicitação e a resposta atuais.

Valor

Descrição

Session ID (Identificação da sessão)

A identificação da sessão para a solicitação especificada.

Time of Request (Hora da solicitação)

A hora em que a solicitação foi feita.

Request Encoding (Codificação da Solicitação)

A codificação de caractere para a solicitação.

Request Type (Tipo de solicitação)

O método HTTP usado (GET ou POST).

Status Code (Código de status)

O valor do código de status associado à resposta.Para obter mais informações, consulte RFC 2616 no Site da World Wide Web Consortium (W3C).

Response Encoding (Codificação da Resposta)

A codificação de caractere para a resposta.

Trace Information (Informações de Rastreamento)

A seção Trace Information (Informações de Rastreamento) exibe o fluxo de eventos em nível de página.Se você tiver criado mensagens de rastreamento personalizadas, as mensagens serão exibidas na seção Trace Information também.

Valor

Descrição

Category (Categoria)

A categoria de rastreamento personalizada especificada em uma chamada de método Warn ou Write, se houver.

Message (Mensagem)

A mensagem de rastreamento personalizada especificada em um Warn ou Write método, se houver.

Desde a(s) primeira(s)

O tempo decorrido em segundos desde que a primeira mensagem de rastreamento foi processada.A primeira mensagem de rastreamento aparece na parte superior da lista.

Desde a(s) última(s)

O tempo decorrido em segundos entre o processamento da mensagem de rastreamento atual e a mensagem de rastreamento anterior.

Control Tree (Árvore de Controle)

A seção Control Tree exibe informações sobre os controles do servidor ASP.NET que são criados na página.

Valor

Descrição

Control ID (Identificação do controle)

A identificação do controle.Se você não especificou uma propriedade ID para o controle, o ASP.NET gerará uma ID usando a propriedade UniqueID.

Type (Tipo)

O tipo totalmente qualificado do controle.

Render Size bytes

O tamanho em bytes do controle processado (incluindo controles filho).Esse é o real tamanho do HTML, XML, ou outro formato que é enviado ao navegador.

ViewState Size bytes

O tamanho em bytes do view state do controle (desconsiderando controles filho).Para obter mais informações, consulte Visão Geral sobre o Gerenciamento de Estado do ASP.NET.

ControlState Size bytes

O tamanho em bytes do estado do controle do controle (desconsiderando controles filho).Para obter mais informações, consulte Visão Geral sobre o Gerenciamento de Estado do ASP.NET.

Session State (Estado da sessão)

A seção Session State exibe informações sobre os valores que são armazenados no estado de sessão, se houver.Para obter mais informações, consulte Visão geral sobre Estado de sessão ASP.NET.

Valor

Descrição

Session Key (Chave da sessão)

A chave para os dados armazenados no estado da sessão, se houver.

Type (Tipo)

O tipo totalmente qualificado do objeto que armazena os dados.

Valor

Uma representação de sequência dos dados armazenados no estado da sessão, se houver.

Application State (Estado do Aplicativo)

A seção Application State (Estado do Aplicativo) exibe informações sobre valores armazenados no estado do aplicativo, se houver.Para obter mais informações, consulte Visão geral do estado do aplicativo ASP.NET.

Valor

Descrição

Application Key (Chave do Aplicativo)

A chave para dados armazenados no estado do aplicativo, se houver.

Type (Tipo)

O tipo totalmente qualificado do objeto que armazena os dados.

Valor

Uma representação de sequência dos dados armazenados no estado do aplicativo, se houver.

Cookies Collection (Coleção Cookies)

As seções Request Cookies e Response Cookies exibem informações sobre os cookies que são passados entre o navegador e o servidor a cada solicitação e resposta.A seção exibe tanto os cookies persistentes quanto os cookies de sessão.O ASP.NET cria alguns cookies automaticamente, tais como aqueles criados para aticação de formulário e para estado da sessão baseada em cookies.Para obter mais informações, consulte Visão Geral de Cookies do ASP.NET.

Valor

Descrição

Nome

O nome do cookie.

Valor

O valor do cookie, ou subchaves e valores se o cookie for multivalorado.

Size (Tamanho)

O tamanho em bytes do cookie.

Headers Collection (Coleção Headers)

A seção Headers Collection (Coleção Headers) exibe informações sobre pares nome/valor dos cabeçalhos de mensagem solicitação e resposta, que fornecem informações sobre o corpo da mensagem ou sobre o recurso solicitado.Informações de cabeçalho são usadas para controlar como mensagens de solicitação são processadas e como mensagens de resposta são criadas.Para obter mais informações sobre cabeçalhos HTTP, consulte RFC 2616 no Site da World Wide Web Consortium (W3C).

Valor

Descrição

Nome

O nome do cabeçalho.

Valor

O valor do cabeçalho.

Form Collection (Coleção do Formulário)

A seção Form Collection exibe os pares nome/valor que mostram os valores de elemento do formulário (valores de controle) que ão enviados em uma solicitação durante uma operação POST (postback).

Valor

Descrição

Nome

O nome da variável de formulário.

Valor

O valor da variável de formulário.

Querystring Collection (Coleção QueryString)

A seção Querystring Collection mostra os valores que são passados na URL.Em uma URL, informações sobre a sequência de caracteres da consulta são separadas das informações de caminho por um ponto de interrogação; elementos múltiplos da sequência de caracteres da consulta são separados por um E comercial (&).Pares nome/valor da sequência de caracteres da consulta são separados por um sinal de igual (=).A propriedade QueryString do objeto HttpRequest retorna um NameValueCollection das variáveis de sequência de caracteres da consulta.

Valor

Descrição

Nome

O nome da variável de sequência de caracteres da consulta

Valor

Valor da variável de sequência de caracteres da consulta.

Server Variables (Variáveis de Servidor)

A seção Server Variables exibe um conjunto de variáveis de ambiente relativas ao servidor e informações de cabeçalho de solicitação.A propriedade ServerVariables do objeto HttpRequest retorna um NameValueCollection das variáveis de sequência de caracteres da consulta.

Valor

Descrição

Nome

O nome da variável de servidor.

Valor

O valor da variável de servidor.

Voltar ao topo

Rastreamento no ASP.NET e o rastreamento de diagnóstico

O rastreamento no ASP.NET grava as mensagens que são exibidas em páginas da Web ASP.NET e no visualizador de rastreamento do ASP.NET (Trace.axd).Por outro lado, a classe System.Diagnostics.Trace é usada para rastrear mensagens de gravação para a saída de rastreamento .NET Framework padrão (normalmente uma janela de console).Para facilitar controlar como suas páginas da Web ASP.NET interagem com objetos de negócios e outros componentes, você pode integrar rastreamento de saída do ASP.NET com rastreamento System.Diagnostics.Você pode, em seguida, rotear todas as mensagens de rastreamento em uma desses saídas.

Um cenário comum que usa o rastreamento do ASP.NET e System.Diagnostics.Trace é o das páginas da Web que usam objetos comerciais da camada intermediária para interagir com as regras de dados e de negócios.Você também pode usar rastreamento System.Diagnostics.Trace para páginas que usam serviços da empresa, como transações e filas.Nessas situações, os componentes comerciais e empresariais reproduzem partes chave na execução bem-sucedida da página.Além disso, pode ajudar com aplicativos de análise para monitorar a execução de fluxo entre as várias camadas usar uma única de rastreamento de saída.Para obter mais informações, consulte Como: Habilitar o rastreamento para um aplicativo ASP.NET.

Atributos de Configuração do Rastreamento

A tabela a seguir mostra os atributos que você pode usar para modificar o comportamento do rastreamento em nível de aplicativo no elemento trace do arquivo Web.config.

Atributo

Descrição

Enabled

true para ativar o rastreamento para o aplicativo; caso contrário, false.O padrão é false.Você pode substituir essa configuração para páginas individuais definindo o atributo Trace na diretiva @ Page de uma página como true ou false.

PageOutput

true para exibir rastreamento em páginas e no visualizador de rastreamento (Trace.axd); caso contrário, false.O padrão é false.

Observação:
Páginas individuais que tenham rastreamento ativado não são afetadas por essa configuração.

RequestLimit

O número de solicitações de rastreamento para armazenar no servidor.O padrão é 10.

TraceMode

A ordem em que informações de rastreamento são exibidas.Defina como SortByTime para classificar a ordem na qual as informações foi processadas.Defina como SortByCategory para classificar em ordem alfabética por categoria definida pelo usuário.O padrão é SortByTime.

LocalOnly

true para disponibilizar o visualizador de rastreamento (Trace.axd) somente no servidor Web host; caso contrário, false.O padrão é true.

MostRecent

true Para exibir as informações de rastreamento mais recentes como o rastreamento de saída; caso contrário, false.Se esse valor for false, quando o valor requestLimit é excedido, novas solicitações não são armazenadas.O padrão é false.

Observação:
Rastreamento de dados que excedem o limite definido pela requestLimit atributo é descartado em favor dos dados mais recentes somente quando mostRecent é true.

Exemplos de código

Tópicos Como Fazer e Passo a passo

Como: Habilitar o rastreamento para uma página ASP.NET

Como: Habilitar o rastreamento para um aplicativo ASP.NET

Como: Modo de exibição ASP.NET Trace Information with the Trace Viewer

Demonstra Passo a passo: Integrando Rastreamento ASP.NET com rastreamento sistema.Diagnóstico

Voltar ao topo

Referência de Classe

Classe

Descrição

System.Diagnostics.Trace

A classe principal para a implementação de rastreamento.

TraceContext

Captura e apresenta detalhes de execução de uma solicitação da Web.

Voltar ao topo

Consulte também

Conceitos

Performance, Troubleshooting, and Debugging

Referência

Voltar ao topo