为什么我得到异常“名为LoadWorkflowByInstanceKey的InstancePersistenceCommand的执行因错误而中断”

时间:2012-02-13 12:54:06

标签: workflow-foundation-4

在对我的WF4服务进行一些重构之后,我在调用某些操作时遇到了这个异常:

The execution of the InstancePersistenceCommand named {urn:schemas-microsoft-com:System.Activities.Persistence/command}LoadWorkflowByInstanceKey was interrupted by an error.

我的xamlx文件包含一些receive / sendreplytoreceive对,如下所示。有时会在receive2上发生异常,有时会发生接收。

  • receive1(无关联,cancreateinstance = true)
  • 发送回复接收(初始化生成的ID上的内容关联)

  • receive2(与ID相关,cancreateinstance = false)

  • 发送回复

  • 收到3(与ID相关,cancreateinstance = false)

  • 发送回复

经过大量调试并确保所有相关设置正确后,新工作流实例的异常消失。

异常是什么意思,它为什么会出现,为什么它会突然消失?它是代码/ xamlx问题还是基础设施问题(AppFabric / SQL)?

我使用AppFabric的SQL持久性,使用IIS / AppFabric托管WF服务。

3 个答案:

答案 0 :(得分:1)

根据this支持说明,此错误可能是接收和延迟活动到期之间的竞争条件造成的。这在您的工作流程中是否可行。

答案 1 :(得分:0)

我有点想通了......显然如果你把你的持久性存储区指向2012年之前的SQL,你就会得到错误......所以我所要做的就是把我的persistance商店放在SQL 2012中...... / p>

答案 2 :(得分:0)

当我遇到这个问题时,在实例化持久性存储对象时,我的连接字符串中出现了错误。

SqlWorkflowInstanceStore store = new SqlWorkflowInstanceStore(connStr);

我意识到这是一个老问题,但修复连接字符串在运行store.Execute()时摆脱了我的错误,所以我想我会分享!