dynamics-crm-online – 在实时工作流的自定义工作流活动中缺少跟踪日志

我已经针对CRM 2013编写了一个自定义工作流活动.您无需了解它的作用.我遇到的问题是,尽管实例化了ITracingService,但我在运行时仅使用Trace(…)方法生成的任何跟踪内容都会对实时工作流进行模糊处理.换句话说,如果我异步运行我的工作流并且(故意)抛出异常,我会在相应的系统作业记录中看到跟踪日志.如果我只是将工作流程切换为“实时”(同步),那么我仍然会得到一个异常,我仍然会得到任何自定义异常文本,但当然没有为实时工作流生成相应的systemjob,所以就像一个插件,我在可下载的日志文件中寻找我的跟踪输出,该文件在发生异常时显示.在这种情况下,我的Traces不可见但是我从(可能)托管工作流的父上下文得到了似乎是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.'

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

_trace.Trace("Starting Greg's custom code...");

这只是一个例子,但关键是,我的跟踪在异步时工作,但在同步时“丢失”.

有任何想法吗?

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

点赞