Información general sobre el seguimiento en ASP.NET
Actualización: noviembre 2007
El seguimiento en ASP.NET le permite ver información de diagnóstico acerca de una única solicitud para una página ASP.NET. El seguimiento de ASP.NET permite seguir la ruta de acceso de ejecución de una página, mostrar información de diagnóstico en tiempo de ejecución y depurar la aplicación. El seguimiento de ASP.NET se puede integrar en un seguimiento del nivel del sistema que proporciona varios niveles de resultados de seguimiento en aplicaciones distribuidas y de varios niveles.
Este tema contiene:
Características
Background
Ejemplos de código
Referencia de clase
Características
La traza de ASP.NET ofrece las siguientes características:
Debugging statments Puede escribir instrucciones de depuración en el código, sin necesidad de quitarlas de la aplicación cuando se implemente en los servidores de producción. También puede escribir variables o estructuras en una página y seguir la traza de la ruta de ejecución de la página o de la aplicación.
Integrated tracing functionality Puede enrutar mensajes emitidos por la clase System.Diagnostics.Trace al resultado de traza de ASP.NET y enrutar mensajes emitidos por la traza de ASP.NET a System.Diagnostics.Trace. También puede reenviar los eventos de instrumentación de ASP.NET a System.Diagnostics.Trace. Para obtener más información, consulte Tutorial: Integrar el seguimiento en ASP.NET con las técnicas de seguimiento de System.Diagnostics.
Programmatic access to trace messages Puede tener acceso y manipular mensajes de traza a partir del código para un control más preciso del formato de los mensajes de traza o para el procesamiento adicional que necesite.
Application-level tracing La opción de traza del nivel de aplicación permite ver los datos de traza más recientes disponibles sin necesidad de reiniciar una sesión de traza ni de aumentar el volumen de datos de traza que debe almacenar el servidor. Se muestran los datos más recientes de traza y se descartan los más antiguos.
Volver al principio
Background
El seguimiento de traza anexa la información de diagnóstico y los mensajes de traza personalizados al resultado de la página y envían esta información al explorador que realizó la solicitud. Opcionalmente, puede ver esta información en otro visor de traza (Trace.axd), que muestra los datos de traza de todas las páginas de la aplicación web ASP.NET. La información de traza puede ayudarle a investigar errores o resultados no deseados mientras ASP.NET procesa una solicitud de página.
Puede configurar páginas individuales para mostrar información de seguimiento. De forma alternativa, puede configurar el archivo Web.config de la aplicación para que todas las páginas muestren información de seguimiento a menos que la página deshabilite explícitamente el seguimiento. El establecimiento de la traza en el nivel de aplicación es útil ya que no necesita realizar cambios en las páginas individuales para habilitarla y deshabilitarla.
Las instrucciones de seguimiento sólo se procesan y se muestran cuando el seguimiento está habilitado. Es posible controlar si el seguimiento se muestra en la página, en el visor de seguimiento o en ambos. Para obtener información acerca de la habilitación de la traza en una página, vea Cómo: Habilitar el seguimiento de una página ASP.NET. Para obtener información acerca de la habilitación de la traza en una aplicación, vea Cómo: Habilitar el seguimiento de una aplicación ASP.NET.
Traza de ASP.NET en la aplicación
La traza en el nivel de aplicación se habilita mediante el elemento trace del archivo Web.config. Cuando se habilita el seguimiento del nivel de aplicación, ASP.NET recopila la información de seguimiento de cada solicitud realizada a la aplicación, hasta llegar al número máximo de solicitudes especificado. El número predeterminado de solicitudes es 10. De forma predeterminada, cuando el visor de seguimiento alcanza este límite, la aplicación deja de almacenar solicitudes de seguimiento. Puede configurar la traza para almacenar los datos de seguimiento más antiguos (descartando elementos más recientes) o la información de traza más reciente (descartado elementos más antiguos).
Nota: |
---|
Cuando habilita la traza para toda la aplicación en el archivo Web.config, la información se recopila y procesa para cada página de la aplicación. Para reemplazar la configuración de la aplicación, establezca el atributo Trace en la directiva @ Page de esa página en false. Las instrucciones Write o Warn que incluya en el código de una página se almacenan y envían únicamente al visor de seguimiento. |
Ver información de seguimiento
Puede ver la información de traza en la parte inferior de páginas individuales. También puede utilizar el visor de traza (Trace.axd) para ver información de traza que ASP.NET recopila y almacena en caché cuando la traza está habilitada. Para obtener detalles sobre la información que incluye la presentación de la traza, vea Leer información de traza de ASP.NET más adelante en este tema.
Si desea que la información de seguimiento aparezca al final de la página que está asociada a ella, puede establecer el atributo PageOutput del elemento trace en true. Si habilita la traza en el nivel de aplicación pero no desea que se muestre información de traza de algunas páginas, puede establecer el atributo Trace de la directiva @ Page de esas páginas en false. Para obtener más información sobre cómo configurar una aplicación ASP.NET, vea Información general sobre la configuración de ASP.NET.
De forma predeterminada, el seguimiento de nivel de aplicación se puede ver sólo en el equipo local del servidor Web. Para hacer que la información de seguimiento del nivel de aplicación sea visible desde equipos remotos, puede establecer el atributo LocalOnly del elemento trace en false.
Nota: |
---|
Para ayudar a proteger la aplicación web, utilice la capacidad de traza remota únicamente cuando programe o instale la aplicación. Asegúrese de que la deshabilita antes de transferir la aplicación a los servidores web de producción. Para ello, establezca el atributo LocalOnly en true en el archivo Web.config. |
El ejemplo siguiente muestra una configuración de traza de aplicación que recoge información de traza para un máximo de 40 solicitudes. También habilita exploradores en equipos distintos del servidor para mostrar el visor de traza.
<configuration>
<system.web>
<trace enabled="true" requestLimit="40" localOnly="false" />
</system.web>
</configuration>
Escribir mensajes de seguimiento de ASP.NET personalizados
Puede anexar la información de traza personalizada a la presentación de traza de una página ASP.NET o al registro de traza. La información de traza que se escribe en el registro de traza se puede ver con el visor de traza. Para obtener más información, consulte Cómo: Ver información de seguimiento de ASP.NET con el visor de seguimiento.
Puede escribir información de traza mediante los métodos Warn o Write de la clase TraceContext. La diferencia entre los dos métodos es que un mensaje escrito con el método Warn aparece con el texto en rojo.
El ejemplo de código siguiente muestra cómo usar la clase TraceContext para mostrar información de traza al final de una página ASP.NET. Se inicia una excepción diferente para cada control LinkButton que produjo la devolución de datos. El mensaje de error que se usa para inicializar las instancias ArgumentException o InvalidOperationException se muestra en el registro de traza.
<%@ 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>
Leer la información de seguimiento de ASP.NET
Puede ver la información de traza que se anexa al final de una página ASP.NET o en el visor de traza. En ambos casos, la información mostrada es la misma. ASP.NET organiza la información de traza en una serie de tablas. Para obtener información sobre cómo ver información de traza en una página, vea Cómo: Habilitar el seguimiento de una página ASP.NET. Para obtener información sobre cómo ver información de traza en el visor de traza, vea Cómo: Ver información de seguimiento de ASP.NET con el visor de seguimiento.
La información de seguimiento aparece en el orden siguiente.
Detalles de la solicitud
La sección Detalles de la solicitud muestra información general sobre la solicitud actual y la respuesta.
Valor |
Descripción |
---|---|
Id. de sesión |
Identificación de sesión de la solicitud especificada. |
Hora de la solicitud |
Hora en que se efectuó la solicitud. |
Codificación de la solicitud |
Codificación de caracteres de la solicitud. |
Tipo de solicitud |
Método HTTP (GET o POST). |
Código de estado |
Valor de código de estado asociado a la respuesta. Para obtener más información, vea RFC 2616 en World Wide Web Consortium (W3C) Web site. |
Codificación de respuesta |
Codificación de caracteres para la respuesta. |
Información de seguimiento
La sección Información de seguimiento muestra el flujo de eventos del nivel de página. Si ha creado mensajes de seguimiento personalizados, los mensajes también se muestran en la sección Información de seguimiento.
Valor |
Descripción |
---|---|
Category |
Categoría de seguimiento personalizada especificada en una llamada al método Warn u Write, si la hay. |
Message |
Mensaje de seguimiento personalizado especificado en una llamada al método Warn u Write, si lo hay. |
Desde los primeros |
Tiempo transcurrido en segundos desde que se procesó el primer mensaje de seguimiento. El primer mensaje de seguimiento aparece en la parte superior de la lista. |
Desde los últimos |
Tiempo transcurrido en segundos entre el procesamiento del mensaje de traza actual y el mensaje de traza anterior. |
Árbol de control
La sección Árbol de control muestra información sobre los controles de servidor ASP.NET que se crean en la página.
Valor |
Descripción |
---|---|
Id. de control |
Identificación del control. Si no ha especificado una propiedad ID para el control, ASP.NET genera ID mediante la propiedad UniqueID. |
Type |
Nombre de tipo completo del control. |
Bytes de tamaño del la representación |
Tamaño del control representado en bytes (incluidos los controles secundarios). Se trata del tamaño del contenido HTML, XML, etc., real que se envía al explorador. |
Tamaño en bytes de ViewState |
Tamaño en bytes del estado de vista del control (excluidos los controles secundarios). Para obtener más información, vea Información general sobre la administración de estados de ASP.NET. |
Tamaño en bytes de ControlState |
Tamaño en bytes del estado de control del control (excluidos los controles secundarios). Para obtener más información, vea Información general sobre la administración de estados de ASP.NET. |
Estado de sesión
La sección Estado de sesión muestra información sobre los valores que se almacenan en el estado de sesión, si la hay. Para obtener más información, vea Información general sobre el estado de sesión de ASP.NET.
Valor |
Descripción |
---|---|
Clave de sesión |
Clave para datos almacenados en el estado de sesión, si la hay. |
Type |
Tipo completo del objeto que almacena los datos. |
Valor |
Representación de cadena de los datos almacenados en el estado de sesión, si la hay. |
Estado de aplicación
La sección Estado de la aplicación muestra información sobre los valores almacenados en el estado de la aplicación, si la hay. Para obtener más información, vea Información general sobre el estado de aplicación de ASP.NET.
Valor |
Descripción |
---|---|
Clave de aplicación |
Clave para datos almacenados en el estado de aplicación, si la hay. |
Type |
Tipo completo del objeto que almacena los datos. |
Valor |
Representación de cadena de los datos que se almacenan en el estado de aplicación, si la hay. |
Colección Cookies
Las secciones Cookies de solicitud y Cookies de respuesta muestran información sobre las cookies que se pasan entre el explorador y el servidor en cada solicitud y respuesta. La sección muestra cookies permanentes y de la sesión. ASP.NET crea automáticamente algunas cookies, como las del estado de sesión basada en cookies y las de autenticación de formularios. Para obtener más información, vea Información general sobre las cookies en ASP.NET.
Valor |
Descripción |
---|---|
Nombre |
Nombre de la cookie. |
Valor |
Valor de la cookie o de las subclaves y valores, en caso de que la cookie tenga valores múltiples. |
Size |
Tamaño de la cookie en bytes. |
Colección Headers
La sección Colección de encabezados muestra información sobre los pares nombre/valor de los encabezados de los mensajes de solicitud y respuesta, que proporcionan información sobre el cuerpo del mensaje o el recurso solicitado. La información de encabezado se utiliza para controlar cómo se procesan los mensajes de solicitud y cómo se crean los mensajes de respuesta. Para obtener más información sobre encabezados HTTP, vea RFC 2616 en World Wide Web Consortium (W3C) Web site.
Valor |
Descripción |
---|---|
Nombre |
Nombre del encabezado. |
Valor |
Valor del encabezado. |
Colección Form
La sección Colección de formularios muestra pares de nombre/valor que indican los valores de elementos de formulario (valores de control) que se envían en una solicitud durante una operación POST (devolución de datos).
Valor |
Descripción |
---|---|
Nombre |
Nombre de la variable de formulario. |
Valor |
Valor de la variable de formulario. |
Colección de cadenas de consulta
La sección Colección de cadenas de consulta muestra los valores que se pasan a la dirección URL. En una dirección URL, la información de la cadena de consulta se separa de la información de la ruta de acceso mediante un signo de interrogación (?); los elementos múltiples de la cadena de consulta se separan mediante un signo de Y comercial (&). Los pares de nombre/valor de la cadena de consulta se separan mediante un signo igual (=). La propiedad QueryString del objeto HttpRequest devuelve NameValueCollection de variables de la cadena de consulta.
Valor |
Descripción |
---|---|
Nombre |
Nombre de la variable de la cadena de consulta. |
Valor |
Valor de la variable de la cadena de consulta. |
Variables de servidor
La sección Variables de servidor muestra una colección de variables de entorno relacionadas con el servidor e información del encabezado de la solicitud. La propiedad ServerVariables del objeto HttpRequest devuelve NameValueCollection de variables del servidor.
Valor |
Descripción |
---|---|
Nombre |
Nombre de la variable de servidor. |
Valor |
Valor de la variable de servidor. |
Volver al principio
Seguimiento en ASP.NET y seguimiento de diagnósticos
El seguimiento en ASP.NET escribe mensajes que se muestran en las páginas Web ASP.NET y el visor de seguimiento de ASP.NET (Trace.axd). En cambio, la clase System.Diagnostics.Trace se utiliza para seguir la traza de los mensajes de escritura en el resultado de traza de .NET Framework estándar (normalmente una ventana de consola). Para facilitar el seguimiento de la interacción entre las páginas web ASP.NET y los objetos de negocios y otros componentes, puede integrar el resultado de traza de ASP.NET con la traza de System.Diagnostics. A continuación puede enrutar todos los mensajes de traza a una de estas salidas.
Un escenario común que usa tanto la traza en ASP.NET como System.Diagnostics.Trace son las páginas web que utilizan objetos de negocios de nivel intermedio para interactuar con datos y reglas de negocios. También puede usar System.Diagnostics.Trace en las páginas que usan servicios de la empresa como transacciones y colas. En estas situaciones, los componentes de empresa y negocio representan papeles clave en la ejecución correcta de la página. Además, puede ayudar con el análisis de la aplicación a supervisar el flujo de ejecución entre los diferentes niveles mediante un resultado de traza único. Para obtener más información, consulte Cómo: Habilitar el seguimiento de una aplicación ASP.NET.
Atributos de configuración del seguimiento
La tabla siguiente muestra los atributos que puede utilizar para modificar el comportamiento de la traza en el nivel de aplicación en el elemento trace del archivo Web.config.
Attribute |
Descripción |
---|---|
true para habilitar el seguimiento para a aplicación; de lo contrario, false. De manera predeterminada, es false. Puede reemplazar esta configuración para las páginas individuales si establece el atributo Trace de la directiva @ Page de una página en true o false. |
|
true para mostrar el seguimiento tanto en páginas como en el visor de seguimiento (Trace.axd); de lo contrario, false. De manera predeterminada, es false.
Nota:
Las páginas individuales con el seguimiento habilitado no se ven afectadas por esta configuración.
|
|
Número de solicitudes de seguimiento que se almacenan en el servidor. El valor predeterminado es 10. |
|
Orden en que se muestra la información de seguimiento. Establezca en SortByTime para ordenar en el orden en el que se procesó la información. Establezca en SortByCategory para ordenar alfabéticamente por categorías definidas por el usuario. De manera predeterminada, es SortByTime. |
|
true para hacer que el visor de seguimiento (Trace.axd) esté disponible sólo para el servidor Web de host; de lo contrario, false. De manera predeterminada, es true. |
|
true para mostrar la información de traza más reciente como resultado de traza; de lo contrario, false. Si este valor es false, cuando se supera el valor de requestLimit, las nuevas solicitudes no se almacenan. De manera predeterminada, es false.
Nota:
Los datos de seguimiento que superan el límite definido por el atributo requestLimit se rechazan a favor de los más recientes sólo cuando mostRecent es true.
|
Ejemplos de código
Temas "Cómo..." y tutoriales
Cómo: Habilitar el seguimiento de una página ASP.NET
Cómo: Habilitar el seguimiento de una aplicación ASP.NET
Cómo: Ver información de seguimiento de ASP.NET con el visor de seguimiento
Tutorial: Integrar el seguimiento en ASP.NET con las técnicas de seguimiento de System.Diagnostics
Volver al principio
Referencia de clase
Clase |
Descripción |
La clase principal para implementar la traza. |
|
Captura y muestra los detalles de ejecución acerca de una solicitud Web. |
Volver al principio
Vea también
Conceptos
Rendimiento, solución de problemas y depuración
Referencia
Volver al principio