我在 CRM 2011 中有一个自定义工作流程,它是针对自定义实体记录手动触发的。当选择单个记录进行处理时,工作流始终会成功。但是,当选择多条记录时,至少有一条会失败。即使使用相同的数据,每次尝试提供的错误似乎也有所不同。
到目前为止我遇到的错误是:
- ValidateOpen - 遇到应处置的 CrmDbConnection
不被处置 您不能从另一个创建 SqlExecutionContext
- 尚未调用 OnBeginRequest 的 SqlExecutionContext
重新启动数据库服务器后:
所有这些都在调用 IOrganizationService 的 Update 方法时发生。无效指针错误似乎是重新启动数据库服务器后更常见的错误(有人向我建议这可能是数据库服务器过于繁忙的问题)。我还删除了所有积压的异步任务,以防这是问题所在,但它没有任何效果。
有谁知道这个错误意味着什么,为什么我可能会收到它或者我如何解决这个问题?
非常感谢!
这条错误消息似乎是一种迂回的说法,“在前一个连接打开时尝试打开另一个与 CRM 的连接”,并且它尝试执行此操作的原因与以下内容非常相关:事实上,它仅在处理多个记录时才会失败。
参考这篇博客:
似乎当工作流针对多个记录运行时,它使用类的相同实例,这意味着类级变量不会在执行之间重新实例化。因此,当后续执行到将类级服务变量设置为 IOrganizationService 实例的代码时,它会发现变量已经有一个并且它是打开的。
我发现最容易实现的解决方案是在执行函数中包含服务变量,而不是在类级别。从那时起,这已经解决了我尝试过的所有问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)