Exportar (0) Imprimir
Expandir todo

CorrelationManager (Clase)

Actualización: noviembre 2007

Establece una correlación entre los seguimientos que forman parte de una transacción lógica.

Espacio de nombres:  System.Diagnostics
Ensamblado:  System (en System.dll)

public class CorrelationManager
public class CorrelationManager
public class CorrelationManager

Los seguimientos de una operación lógica se pueden etiquetar con una identidad única de la operación con el fin de distinguirlos de los seguimientos de otra operación lógica. Por ejemplo, puede ser útil agrupar los seguimientos correlacionados mediante una solicitud de ASP.NET. La clase CorrelationManager proporciona los métodos utilizados para almacenar la identidad de una operación lógica en un contexto enlazado a un subproceso y etiquetar automáticamente cada evento de seguimiento generado por el subproceso con la identidad almacenada.

También se pueden anidar las operaciones lógicas. La propiedad LogicalOperationStack expone la pila de identidades de las operaciones lógicas anidadas. Cada llamada al método StartLogicalOperation inserta una nueva identidad de operación lógica en la pila. Cada llamada al método StopLogicalOperation extrae una identidad de operación lógica de la pila.

1fxyt46s.alert_note(es-es,VS.90).gifNota:

Las identidades de operación lógica son objetos, que permiten usar un tipo para una identidad de operación lógica.

En el ejemplo de código siguiente se identifica la operación lógica asociada a un evento seguido paso a paso para mostrar el uso de la clase CorrelationManager. Se inician dos operaciones lógicas, una en el subproceso principal y la otra en un subproceso de trabajo. Se registra un evento de error en ambas operaciones lógicas.

using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;
using System.Threading;

namespace CorrlationManager
{
    class Program
    {
        //private static TraceSource ts;
        static void Main(string[] args)
        {
            TraceSource ts = new TraceSource("MyApp");
            int i = ts.Listeners.Add(new ConsoleTraceListener());
            ts.Listeners[i].TraceOutputOptions = TraceOptions.LogicalOperationStack;
            ts.Switch = new SourceSwitch("MyAPP", "Verbose");
            // Start the logical operation on the Main thread.
            Trace.CorrelationManager.StartLogicalOperation("MainThread");
            ts.TraceEvent(TraceEventType.Error, 1, "Trace an error event.");
            Thread t = new Thread(new ThreadStart(ThreadProc));
            // Start the worker thread.
            t.Start();
            // Give the worker thread a chance to execute.
            Thread.Sleep(1000);
            Trace.CorrelationManager.StopLogicalOperation();
        }
        public static void ThreadProc()
        {
            TraceSource ts = new TraceSource("MyApp");
            int i = ts.Listeners.Add(new ConsoleTraceListener());
            ts.Listeners[i].TraceOutputOptions = TraceOptions.LogicalOperationStack;
            ts.Switch = new SourceSwitch("MyAPP", "Verbose");
            // Add another logical operation.
            Trace.CorrelationManager.StartLogicalOperation("WorkerThread");
            ts.TraceEvent(TraceEventType.Error, 1, "Trace an error event.");
            Trace.CorrelationManager.StopLogicalOperation();
        }
    }
}
// This sample generates the following output:
//MyApp Error: 1 : Trace an error event.
//    LogicalOperationStack=MainThread
//MyApp Error: 1 : Trace an error event.
//    LogicalOperationStack=WorkerThread, MainThread


System.Object
  System.Diagnostics.CorrelationManager

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 3.5, 3.0, 2.0

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft