实时工作流程的自定义工作流程活动中缺少跟踪日志

Gre*_*ens 5 dynamics-crm-online dynamics-crm-2013

我已经针对 CRM 2013 编写了一个自定义工作流程活动。您不需要了解它的作用。我遇到的问题是,尽管实例化了ITracingService,但我使用该Trace(...)方法生成的任何跟踪内容都会在运行时仅针对实时工作流程进行混淆。换句话说,如果我异步运行工作流程并(故意)抛出异常,我可以在相应的系统作业记录中看到跟踪日志。如果我只是将工作流程切换为“实时”(同步),那么我仍然会收到异常,并且仍然会收到任何自定义异常文本,但是当然没有systemjob为实时工作流程生成相应的内容,因此,就像插件一样,我正在在发生异常时显示的可下载日志文件中查找跟踪输出。在这种情况下,我的跟踪不可见,但我从(可能)托管工作流的父上下文中获取了似乎是 Microsoft 的跟踪日志 - 您可以看到它引用了我的工作流过程定义中的步骤:

[Microsoft.Crm.ObjectModel: Microsoft.Crm.Extensibility.InternalOperationPlugin]
[46f6cf4c-14ae-4f1e-98a1-eae99a37e95c: ExecuteWorkflow]
Starting sync workflow 'MyTestWorkflow', Id: ca8782b1-7ca4-e311-a055-6c3be5be5f78
Entering CreateStep1_step: 
Entering CustomActivityStep2_step: 
Sync workflow '__Test' terminated with error 'Unexpected exception from plug-in (Execute): My.Test.WF.DoSomething: System.NullReferenceException: Object reference not set to an instance of an object.'
Run Code Online (Sandbox Code Playgroud)

在我的程序集中,My.Test.WF.DoSomething我在调用时访问跟踪服务并立即开始通过该Trace()方法进行写入,例如

_trace.Trace("Starting Greg's custom code...");
Run Code Online (Sandbox Code Playgroud)

这只是一个示例,但要点是,我的跟踪在异步时有效,但在同步时“丢失”。

有任何想法吗?

Bvr*_*rce 2

相应工作流设计器表单上的流程会话部分包含完整的异常消息。