CRM 2011工作流"无效指针"错误

Ale*_*lec 9 workflow asynchronous dynamics-crm dynamics-crm-2011

我在CRM 2011中有一个自定义工作流程,它是针对自定义实体记录手动触发的.选择单个记录进行处理时,工作流程始终成功.但是,当选择多个记录时,至少有一个记录会失败.即使使用相同的数据,提供的错误似乎也会因尝试而异.

到目前为止我遇到的错误是:

  • ValidateOpen - 遇到CrmDbConnection时不应该处理它你不能从另一个创建一个SqlExecutionContext
  • 尚未调用OnBeginRequest的SqlExecutionContext

并在重新启动数据库服务器后:

  • 指针无效

调用IOrganizationService的Update方法时会发生所有这些.自从重新启动数据库服务器以来,无效指针错误似乎是更常见的错误(有人向我建议它可能是一个过于繁忙的数据库服务器的问题).我还删除了任何积压的异步任务,以防这是问题,但它没有任何影响.

有谁知道这个错误意味着什么,为什么我可能会得到它或如何解决这个问题?

非常感谢!

Ale*_*lec 8

似乎这个错误信息是一种说法,'试图在前一个打开时打开与CRM的另一个连接',并且它试图这样做的原因与它只在处理时失败的事实非常相关不止一条记录.

参考这个博客:

似乎当针对多个记录运行工作流时,它使用该类的相同实例,这意味着不会在执行之间重新实例化类级变量.因此,当后续执行到达将类级服务变量设置为IOrganisationService实例的代码时,它会发现变量已经有一个并且它已打开.

我发现最容易实现的解决方案是在Execute函数中使用服务变量,而不是类级别.这解决了我从未尝试过的问题.