Share via


Usar ITracingService en los complementos

Categoría: mantenimiento, compatibilidad

Potencial de impacto: medio

Síntomas

Depurar o solucionar los problemas de los complementos o los comportamientos de la solución es complicado sin tener registros o un seguimiento variados y detallados.

Instrucciones

La interfaz ITracingService ayuda a los programadores con el registro de información personalizada para ayudar en el diagnóstico de la causa de los errores de código o comportamientos inesperados código en los complementos. Antes de escribir en el servicio de seguimiento, primero debe extraer el objeto de servicio de seguimiento del contexto de ejecución pasado. A continuación, agregue simplemente llamadas Trace a su código personalizado donde corresponda pasando la información relevante de diagnóstico en esa llamada al método.

Nota

El registro de seguimiento mediante la interfaz ITracingService funciona únicamente cuando el complemento se registra en modo de espacio aislado y debe habilitar el registro de seguimiento para recopilar datos en tiempo de ejecución. Para obtener más información, consulte Registro y seguimiento.

//Extract the tracing service for use in debugging sandboxed plug-ins.
ITracingService tracingService =
    (ITracingService)serviceProvider.GetService(typeof(ITracingService));

// Obtain the execution context from the service provider.
IPluginExecutionContext context = (IPluginExecutionContext)
    serviceProvider.GetService(typeof(IPluginExecutionContext));

// For this sample, execute the plug-in code only while the client is online. 
tracingService.Trace("AdvancedPlugin: Verifying the client is not offline.");
if (context.IsExecutingOffline || context.IsOfflinePlayback)
    return;

// The InputParameters collection contains all the data passed 
// in the message request.
if (context.InputParameters.Contains("Target") &&
    context.InputParameters["Target"] is Entity)
{
    // Obtain the target entity from the Input Parameters.
    tracingService.Trace("AdvancedPlugin: Getting the target entity from Input Parameters.");
    Entity entity = (Entity)context.InputParameters["Target"];

    // Obtain the image entity from the Pre Entity Images.
    tracingService.Trace("AdvancedPlugin: Getting image entity from PreEntityImages.");
    Entity image = (Entity)context.PreEntityImages["Target"];
}

Información adicional

El seguimiento es especialmente útil para solucionar problemas de código personalizado registrado ya que es el único método que solución de problemas compatible para ese escenario. El seguimiento se admite para código personalizado registrado en sandboxed (confianza parcial) y de total confianza y durante la ejecución sincrónica o asincrónica. El seguimiento no se admite para código personalizado que se ejecuta en Microsoft Dynamics 365 for Outlook u otro cliente móvil.

Vea también

Escribir un complemento
Registro y seguimiento

Nota

¿Puede indicarnos sus preferencias de idioma de documentación? Realice una breve encuesta. (tenga en cuenta que esta encuesta está en inglés)

La encuesta durará unos siete minutos. No se recopilan datos personales (declaración de privacidad).