Compartir a través de


Tutorial: Utilizar el seguimiento en Visual Web Developer para detectar errores en páginas Web

Actualización: noviembre 2007

Hay varios métodos para detectar errores en una página Web ASP.NET. Entre éstos se encuentra el uso del depurador y la función de seguimiento. Con el seguimiento se muestran mensajes acerca de las acciones que se producen durante el procesamiento de las páginas, y puede incluirse información que tiene la posibilidad de mostrar. La función de seguimiento también le proporciona información sobre los datos que se intercambian el servidor y el explorador. El intercambio de datos incluye detalles de los controles, variables de servidor, nombre de usuario, cookies, etc. En este tutorial se muestra cómo utilizar la función de seguimiento.

El seguimiento es una opción útil cuando no resulta viable o ventajoso utilizar el depurador. Por ejemplo, el depurador podría no estar disponible porque las páginas están en un servidor remoto. Con la función de seguimiento también le resultará más fácil ver información, como el encabezado HTTP, que no está explícitamente disponible en el depurador. Para obtener información acerca de la depuración, vea Tutorial: Depurar páginas Web en Visual Web Developer.

En este tutorial trabajará con la función de seguimiento. Creará una página Web que solicita al usuario que escriba un nombre y, a continuación, muestra el nombre. La página también almacena el nombre en una cookie para que el usuario no tenga que volver a escribirlo.

Nota:

En una aplicación de producción existe una técnica mejor para almacenar datos personales. Consiste en utilizar las propiedades de los perfiles de ASP.NET. Para obtener información detallada, vea Información general sobre las propiedades de perfil de ASP.NET. Sin embargo, el uso de una cookie en este tutorial simplifica el código para que pueda centrarse en la función de seguimiento.

En este tutorial introducirá deliberadamente algunos errores. A continuación, utilizará la función de seguimiento para ver el estado de procesamiento de las páginas, lo que le ayudará diagnosticar los errores.

Entre las tareas ilustradas en este tutorial se incluyen las siguientes:

  • Habilitar el seguimiento para una sola página.

  • Leer el resultado del seguimiento.

  • Mostrar la información de seguimiento personalizada.

  • Ver información de seguimiento en una ventana independiente.

  • Crear resultados de seguimiento personalizados.

Requisitos previos

Para poder completar este tutorial, necesitará lo siguiente:

  • Herramienta de desarrollo Web Microsoft Visual Web Developer.

  • El entorno .NET Framework

En este tutorial se da por supuesto que tiene conocimientos generales del trabajo en Visual Web Developer. Para obtener una introducción a Visual Web Developer, vea Tutorial: Crear una página Web básica en Visual Web Developer.

Crear el sitio Web

Si ya ha creado un sitio Web en Visual Web Developer siguiendo los pasos descritos en Tutorial: Crear una página Web básica en Visual Web Developer, puede utilizar ese sitio Web e ir a la sección "Agregar Controles", que figura más adelante en este tutorial. De lo contrario, cree un sitio Web y una página nuevos siguiendo estos pasos.

Nota:

En este tutorial se supone que está trabajando con una página ASP.NET que utiliza un archivo de código subyacente para su código.

Para crear un sitio Web del sistema de archivos

  1. Abra Visual Web Developer.

  2. En el menú Archivo, haga clic en NuevoSitio Web.

    Aparece el cuadro de diálogo Nuevo sitio Web.

  3. En Plantillas instaladas de Visual Studio, haga clic en Sitio Web de ASP.NET.

  4. En el cuadro Ubicación situado en el extremo derecho, escriba el nombre de la carpeta en la que desea conservar las páginas del sitio Web.

    Por ejemplo, escriba el nombre de carpeta C:\WebSites.

  5. En la lista Lenguaje, haga clic en el lenguaje de programación con el que prefiera trabajar.

  6. Haga clic en Aceptar.

    Visual Web Developer crea la carpeta y una nueva página denominada Default.aspx.

Agregar una página

Si está utilizando un sitio Web existente, puede crear una nueva página. Si ya tiene una página que puede utilizar para este tutorial, vaya a la sección siguiente.

Para crear una nueva página

  1. En el Explorador de soluciones, haga clic con el botón secundario del mouse (ratón) en el nombre del sitio Web y, a continuación, haga clic en Agregar nuevo elemento.

  2. En la opción Plantillas instaladas de Visual Studio del cuadro de diálogo Agregar nuevo elemento <Path>, haga clic en Web Forms.

  3. En el cuadro Nombre, escriba FirstWebPage.aspx.

  4. En la lista Lenguaje, haga clic en el lenguaje de programación con el que prefiera trabajar.

  5. Si está creando una página en Visual Basic o C#, active la casilla Colocar el código en un archivo independiente.

  6. Haga clic en Agregar.

Agregar controles

Después de crear un sitio Web y abrir una página, el paso siguiente consiste en agregar controles a la página.

Para agregar controles y código para la depuración

  • Cambie a la vista Diseño y, desde el grupo Estándar del Cuadro de herramientas, arrastre los siguientes controles a la página y establezca las propiedades correspondientes tal como se indica en la tabla.

    • Control

    • Propiedades

    TextBox

    ID: textName

    Text: (vacío)

    Button

    ID: buttonDisplayName

    Text: Enviar

    Label

    ID: labelName

    Text: (vacío)

    Nota:

    Para este tutorial, el diseño de la página no es importante.

Agregar código

El paso siguiente consiste en agregar código a la página. Cuando la página se ejecuta correctamente, el usuario puede escribir un nombre y, a continuación, hacer clic en Enviar, con lo que se muestra el nombre en el control Label. Si el usuario cierra el explorador y después vuelve a la página, en ésta ya se muestra su nombre, porque está almacenado en una cookie.

Los siguientes pasos le servirán de guía para agregar el código. Ni el procedimiento que aquí se indica para agregar el código ni el propio código son totalmente correctos. Esto es deliberado, con el fin de que pueda utilizar la función de seguimiento para detectar los errores en la página.

Para agregar código

  1. En el Explorador de soluciones, haga clic con el botón secundario del mouse (ratón) en FirstWebPage.aspx y, a continuación, haga clic en Ver código.

    Nota:

    No haga doble clic en el botón en la vista Diseño.

  2. Dentro de la definición de clase, escriba el código que se muestra a continuación.

    Nota:

    Si está trabajando con una página de un solo archivo, pegue el código en el bloque <script>.

    Protected Sub buttonDisplayName_Click(ByVal sender As Object, _
          ByVal e As EventArgs)
       labelName.Text = Server.HtmlEncode(textName.Text)
       Response.Cookies("username").Value = labelName.Text
    End Sub
    
    protected void buttonDisplayName_Click(Object sender, EventArgs e)
    {
        labelName.Text = Server.HtmlEncode(textName.Text);
        Response.Cookies["username"].Value = labelName.Text;
    }
    

    El código realiza las tareas siguientes:

    • Lee el valor del control TextBox y, a continuación, muestra el valor en el control Label. Como parte de esta lógica, el código llama al método HtmlEncode, que convierte caracteres HTML que podrían ejecutarse, como los paréntesis angulares (<), en equivalentes para la presentación. Ésta es una medida de seguridad para evitar ataques mediante secuencias de comandos. Para obtener información detallada, vea Ataques mediante secuencias de comandos.

    • Crea una cookie con el nombre username que almacena el valor que el usuario ha especificado.

  3. Agregue el método siguiente, encima o debajo del controlador Click que creó en el paso anterior.

    Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) _
            Handles Me.Load
       If Not Request.Cookies("username") Is Nothing Then
          labelName.Text = Request.Cookies("username").Value
       End If
    End Sub
    
    void Page_Load(Object sender, EventArgs e)
    {
        if(Request.Cookies["username"] != null)
        {
            labelName.Text = Request.Cookies["username"].Value;
        }
    }
    

Probar la página

Ya puede probar la página. Si ha seguido los pasos deliberadamente incompletos del procedimiento de la sección anterior, la página no funcionará todavía como se ha diseñado.

Para probar la página

  1. Presione CTRL+F5 para ejecutar la página.

  2. Cuando la página aparezca, escriba su nombre en el cuadro de texto y, a continuación, haga clic en Enviar.

    Observe que aunque al hacer clic en Enviar se devolvió la página al servidor, no se muestra su nombre.

  3. Cierre el explorador.

Ahora puede utilizar la función de seguimiento como ayuda para localizar los errores en la página.

Utilizar el seguimiento para detectar errores

En esta sección habilitará el seguimiento para la página. Examinará el resultado del seguimiento y, a continuación, incluirá mensajes de seguimiento personalizados que le ayudarán a localizar con exactitud los errores en la página.

Para habilitar el seguimiento de la página

  1. Abra la página FirstWebPage.aspx y cambie a la vista Diseño.

  2. En la lista de Propiedades, haga clic en DOCUMENT.

    Con esta operación se muestran las propiedades de la página.

  3. Establezca Trace en true.

    La configuración del seguimiento se realiza en realidad como parte de la directiva @ Page. Puede verlo si cambia a la vista Código fuente y examina la primera línea de la página. La directiva @ Page tendrá una apariencia similar a la siguiente:

    <%@ Page language="VB"      Trace="true" %>
    
    <%@ Page language="C#"      Trace="true" %>
    
  4. Presione CTRL+F5 para ejecutar la página.

    La página se muestra en el explorador. En la parte superior verá el texto y los controles que coloque en la página. Bajo el texto y los controles se ve el resultado del seguimiento, con un gran número de detalles acerca del procesamiento de las páginas y la información siguiente:

    • La secuencia de eventos de página que se produjeron mientras se ejecutaba la página.

    • Los tipos, nombres y tamaños de los controles en la página.

    • Las cookies y su contenido.

    • Las variables de servidor, que es una colección de toda la información que el explorador envía al servidor.

    Observe que bajo Detalles de la solicitud (el primer bloque de información de seguimiento), el Tipo de petición es GET. Esto indica que es la primera vez que se ha ejecutado la página; es decir, no es una devolución de datos.

  5. En el cuadro, escriba un nombre y, a continuación, haga clic en Enviar.

    Ahora, el Tipo de petición es POST. Esto indica que se trata de una devolución de datos para la página. Aunque se haga clic en Enviar, el nombre no se muestra.

  6. Cierre el explorador.

Puede utilizar los resultados de seguimiento personalizados como ayuda para seguir la lógica de la página.

Para agregar resultados de seguimiento personalizados

  1. Agregue las siguientes líneas resaltadas al controlador buttonDisplayName_Click que creó anteriormente en este tutorial, en la sección "Agregar código":

    Protected Sub buttonDisplayName_Click(ByVal sender As Object, _
          ByVal e As EventArgs)
       Trace.Warn("debugging", "Start buttonDisplayName Click handler")
       labelName.Text = Server.HtmlEncode(textName.Text)
       Response.Cookies("username").Value = labelName.Text
       Trace.Warn("debugging", "End buttonDisplayName Click handler")
    End Sub
    
    protected void buttonDisplayName_Click(Object sender, EventArgs e)
    {
       Trace.Warn("debugging", "Start buttonDisplayName Click handler");
       labelName.Text = Server.HtmlEncode(textName.Text);
       Response.Cookies["username"].Value = labelName.Text;
       Trace.Warn("debugging", "End buttonDisplayName Click handler");
    }
    

    El método Warn agrega sus mensajes personalizados al resultado del seguimiento. Aunque la clase TraceContext también proporciona un método Write, el método Warn es más útil porque el resultado se muestra en color.

  2. Presione CTRL+F5 para ejecutar la página.

  3. Haga clic en Enviar.

    Cuando examine el resultado del seguimiento, observará que no contiene texto rojo. A partir de ahí puede llegarse a la conclusión de que no se llama al controlador Click para Enviar.

    La razón más frecuente por la que no se llama a un controlador es que el control no se ha enlazado correctamente al controlador de eventos. Es lo que ocurre en este caso; aunque agregó código para controlar el evento, no enlazó al controlador el evento Click para Enviar. Normalmente, Visual Web Developer enlaza el evento al control cuando se hace doble clic en el control en la vista Diseño.

  4. Cierre el explorador.

  5. En la vista Código fuente, agregue el atributo resaltado que se muestra a continuación al elemento <asp:button>:

    <asp:button id="buttonDisplayName"  text="Submit"
        onclick="buttonDisplayName_Click" />
    
  6. Presione CTRL+F5 para ejecutar la página.

  7. En el cuadro, escriba un nombre y, a continuación, haga clic en Enviar.

    El resultado personalizado del seguimiento aparece en rojo en la sección Información de seguimiento, en la que se muestran los pasos del procesamiento por los que pasa la página.

    El resultado que aparece en esta sección muestra los mensajes en el orden en el que se generaron durante el procesamiento de las páginas. Agregó los mensajes en el controlador de eventos Click, que se procesa entre las líneas Begin Raise PostBackEvent y End Raise PostBackEvent. La inclusión de mensajes personalizados le permite saber no sólo que se llamó a su controlador, sino también en qué punto del ciclo de procesamiento de las páginas se ejecuta el código.

    La categoría situada junto a los mensajes personalizados es debugging, que es la que especificó al llamar al método Warn. Puede especificar cualquier categoría que desee y, si resulta de utilidad, establecer la propiedad TraceMode para la página con el valor SortByCategory con el fin de facilitar la búsqueda de la categoría en el resultado del seguimiento.

    Además, observe que el nombre que escribió se muestra en la etiqueta.

Ahora que el controlador Click para Enviar funciona correctamente, puede probar el resto del código de la página, incluso la cookie.

  1. Cierre el explorador.

  2. Presione CTRL+F5 para ejecutar la página.

    El comportamiento que espera es que el nombre que ha escrito aparezca automáticamente en la etiqueta, porque el controlador Click para Enviar establece una cookie y el controlador Page_Load la lee durante la siguiente devolución de datos. Sin embargo, la etiqueta nunca se establece a partir de la cookie.

    Si escribe una cookie pero ésta no se conserva, el error suele deberse a que no se ha establecido una fecha de caducidad explícita para la cookie. Una cookie sin fecha de caducidad es una cookie de sesión. Una cookie de sesión sólo se mantiene en la memoria del servidor hasta que se cierra el explorador. Es decir, la cookie no se escribe en el explorador. En los pasos siguientes corregirá este problema.

  3. Cierre el explorador.

  4. En la vista Código fuente, agregue la línea resaltada que se muestra a continuación al controlador buttonDisplayName_Click:

    Protected Sub buttonDisplayName_Click(ByVal sender As Object, _
            ByVal e As EventArgs)
        Trace.Warn("debugging", "Start buttonDisplayName Click handler")
        labelName.Text = Server.HtmlEncode(textName.Text)
        Response.Cookies("username").Value = labelName.Text
        Response.Cookies("username").Expires= _       DateTime.Now.AddMinutes(30)
       Trace.Warn("debugging", "End buttonDisplayName Click handler")
    End Sub
    
    protected void buttonDisplayName_Click(Object sender, EventArgs e)
    {
        Trace.Warn("debugging", 
            "Start buttonDisplayName Click handler");
        labelName.Text = Server.HtmlEncode(textName.Text);
        Response.Cookies["username"].Value = labelName.Text;
        Response.Cookies["username"].Expires=         DateTime.Now.AddMinutes(30);
        Trace.Warn("debugging", "End buttonDisplayName Click handler");
    }
    

    La nueva línea establece explícitamente que la cookie caduque al cabo de 30 minutos.

  5. Presione CTRL+F5 para ejecutar la página.

  6. En el cuadro, escriba un nombre y, a continuación, haga clic en Enviar.

    El nombre se muestra en el explorador. En el resultado del seguimiento de Colección de cookies de respuesta, puede ver que se establece la cookie.

  7. Cierre el explorador.

  8. Presione CTRL+F5 para ejecutar la página.

    En esta ocasión, el nombre se rellena automáticamente. En el resultado del seguimiento de Colección de cookies de solicitud, ahora puede ver que el explorador pasa la cookie a la página.

Mostrar información de seguimiento en una ventana de visor de seguimiento

Configurar la página de modo que muestre resultados de seguimiento puede ser útil cuando se trabaja sólo con una página. Sin embargo, si trabaja con muchas páginas en la aplicación, activar o desactivar el seguimiento para cada página podría resultar poco práctico. Además, mostrar información de resultados de seguimiento en la página mientras ésta se ejecuta puede convertirse en un factor de distracción. En cualquier caso, no deseará que la página muestre resultados de seguimiento a los usuarios de la aplicación.

Además de configurar el seguimiento en el nivel de las páginas, también puede configurarlo en el nivel de la aplicación. Establecer el seguimiento en el nivel de la aplicación tiene dos ventajas:

  • Puede habilitar y deshabilitar el seguimiento para todas las páginas simultáneamente.

  • Puede hacer que se muestren los resultados de seguimiento en una ventana independiente del explorador (el visor de seguimiento) en lugar de que se muestren como parte del resultado de la página.

Cuando se habilita el seguimiento en el nivel de la aplicación, ASP.NET mantiene los resultados del seguimiento de todas las páginas en una caché. Tiene la posibilidad de establecer opciones para especificar cuántas páginas de resultados de seguimiento deben almacenarse en caché y si desea mantener las entradas más recientes o las más antiguas. Después puede invocar al visor de seguimiento en el explorador y seleccionar los resultados del seguimiento para examinarlos.

En esta sección del tutorial habilitará el seguimiento en el nivel de la aplicación y utilizará el visor de seguimiento para examinar los resultados.

Para habilitar el seguimiento en el nivel de la aplicación

  1. Cambie a la vista Código fuente, y a continuación en la directiva @ Page, en la parte superior de la página, elimine Trace="true".

    Nota:

    Quite el atributo; no se limite a establecerlo en false. De lo contrario, los pasos siguientes de este tutorial no podrán ejecutarse correctamente.

  2. En el menú Sitio Web, haga clic en Configuración de ASP.NET.

    Aparece la herramienta Administración de sitios Web de ASP.NET.

  3. Haga clic en Configuración de la aplicación.

  4. En Depuración y seguimiento, haga clic en Configurar depuración y seguimiento y, a continuación, active la casilla Capturar información de seguimiento.

    Esta configuración habilita el seguimiento en el nivel de la aplicación.

    Para este tutorial puede dejar la configuración predeterminada por lo que respecta a los valores restantes. ASP.NET almacenará en caché hasta 10 entradas de resultados de seguimiento (10 devoluciones de datos de una sola página o menos devoluciones, si se trata de varias páginas), así como las entradas más recientes.

  5. Cierre la herramienta de administración de sitios Web ASP.NET.

Ahora puede ejecutar la página original y trabajar con ella tal como la vería un usuario. Sin embargo, también podrá ver en una ventana independiente del explorador el resultado del seguimiento cuando sea necesario.

Para ver el resultado del seguimiento en una ventana independiente del explorador

  1. Presione CTRL+F5 para ejecutar la página.

    Observe que en la página ya no se muestra el resultado del seguimiento. La página se muestra tal como la vería un usuario.

  2. En el cuadro, escriba un nombre y, a continuación, haga clic en Enviar para confirmar que la página funciona correctamente.

  3. Abra una nueva ventana del explorador.

  4. En el explorador, en el cuadro Dirección, escriba la dirección URL del sitio, de modo que se sustituya trace.axd por el nombre de la página con la que está trabajando.

    Por ejemplo, si la dirección URL de la página es la que se indica a continuación:

    https://localhost:8081/WebSite/Default.aspx
    

    Escriba lo siguiente:

    https://localhost:8081/WebSite/trace.axd
    
    Nota:

    Un método rápido de llevar a cabo esta tarea consiste en copiar la dirección URL de la página original y, a continuación, cambiar únicamente el nombre de la página.

    El explorador muestra la caché actual con las entradas de seguimiento.

  5. Haga clic en Ver detalles para que se muestre la última entrada de seguimiento (la más reciente).

    En el explorador se muestran resultados de seguimiento similares a los que ha visto anteriormente en el tutorial, salvo que no se anexan al final de la página.

  6. Cambie a la instancia del explorador que contiene la página original.

  7. En el cuadro, escriba un nuevo nombre y, a continuación, haga clic en Enviar.

    Con esta acción se genera una nueva entrada de registro de seguimiento.

  8. Cambie a la instancia del explorador que contiene la información.

  9. En el explorador, haga clic Atrás para volver a las entradas de seguimiento de la lista y, a continuación, haga clic en Actualizar para actualizar la lista de entradas.

    Aparece una nueva entrada para representar el resultado de seguimiento que creó en el paso 7.

  10. Cierre ambas ventanas del explorador.

Crear resultados de seguimiento personalizados

Ha podido comprobar que el resultado del seguimiento contiene mucha información; en ocasiones, más de la que necesitará. Quizá desee limitar los resultados de seguimiento; por ejemplo, que sólo se muestren los que correspondan al tipo de seguimiento que defina directamente. La función de seguimiento le permite leer el contenido del búfer de seguimiento y hacer que se muestre de forma selectiva la información que necesita.

Para crear resultados de seguimiento personalizados, controle el evento TraceFinished para el objeto Trace. En el controlador de eventos puede leer el búfer de seguimiento.

Para crear resultados de seguimiento personalizados

  1. En la página con la que ha estado trabajando, agregue el código resaltado que se muestra a continuación al controlador Page_Load:

    Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) _
            Handles Me.Load
       If Not Request.Cookies("username")  Is Nothing Then
          labelName.Text = Request.Cookies("username").Value
       End If
       AddHandler Trace.TraceFinished, AddressOf Me.TraceFinished   If IsPostBack Then      Trace.Write("debugging", "Page_Load (Postback)")   Else      Trace.Write("debugging", "Page_Load (First Time)")   End If
    End Sub
    
    void Page_Load(object sender, EventArgs e)
    {
        if(Request.Cookies["username"].Value != null)
        {
            labelName.Text = Request.Cookies["username"].Value;
        }
        Trace.TraceFinished += new         TraceContextEventHandler(this.TraceFinished);    if (Page.IsPostBack)    {        Trace.Write("debugging", "Page load (postback)");    }    else    {        Trace.Write("debugging", "Page load (first time)");    }
    }
    

    El código realiza las dos funciones siguientes:

    • Enlaza un método en la página al evento TraceFinished para el objeto Trace, que se inicia cuando cuando se obtiene el resultado completo del seguimiento de la página. En el siguiente paso, escribirá el método.

    • Escribe algunos datos de seguimiento.

  2. Cree el método siguiente para controlar el evento TraceFinished:

    Sub TraceFinished(ByVal sender As Object, _
           ByVal e As TraceContextEventArgs)
       Dim traceRecord As TraceContextRecord
       For Each traceRecord In e.TraceRecords
          If traceRecord.Category = "debugging" Then
             Response.Write("<BR>" & traceRecord.Message)
          End If
       Next
    End Sub
    
    void TraceFinished(object sender, TraceContextEventArgs e)
    {    
        foreach(TraceContextRecord traceRecord in e.TraceRecords)
        {    
               if(traceRecord.Category == "debugging")    
               {        
                   Response.Write("<br>" + traceRecord.Message);
               }    
        }    
    }
    

    Este código se ejecuta cuando el resultado del seguimiento está completo. El búfer de seguimiento está disponible como una colección en la propiedad TraceRecords del argumento de evento e. El código recorre la colección y muestra el valor de todos los registros de seguimiento que tengan la categoría debugging; en este tutorial ha establecido la categoría de todos los resultados de seguimiento como debugging.

En este punto del tutorial, el sitio Web está configurado para habilitar el seguimiento en todas las páginas, pero el resultado del seguimiento se dirige a un visor de seguimiento, en lugar de a la página. Si el sitio Web se configura de otro modo (por ejemplo, si el resultado del seguimiento de una página se muestra en esa página) siga los pasos del procedimiento denominado Para habilitar el seguimiento en el nivel de la aplicación, en la sección anterior de este tutorial "Mostrar información de seguimiento en una ventana de visor de seguimiento".

Ahora puede probar el resultado de seguimiento personalizado.

Para probar el resultado de seguimiento personalizado

  1. Presione CTRL+F5 para ejecutar la página.

    Cuando se muestra la página en el explorador, aparece el mensaje Carga de páginas (primera vez), pero no aparece ningún otro resultado de seguimiento.

  2. Haga clic en Enviar.

    Aparecen los mensajes Carga de páginas (devolución de datos), Controlador de clic de Nombre_de_botón_para_mostrar de inicio y Controlador de clic de Nombre_de_botón_para_mostrar de finalización.

Nota:

Si sobrepasa el número de solicitudes almacenadas en caché que se especifica en el atributo requestLimit del elemento Elemento trace (Esquema de configuración de ASP.NET), no se iniciará el evento TraceFinished y no verá los mensajes en la página Web.

Pasos siguientes

En este tutorial se ha mostrado la funcionalidad básica del seguimiento en ASP.NET. Además de utilizar la función de seguimiento para mostrar información dentro de la aplicación Web, puede integrar el seguimiento en ASP.NET con otra instrumentación. Por ejemplo, puede hacer lo siguiente:

Vea también

Otros recursos

Seguimiento en páginas Web ASP.NET (Visual Studio)