在对我的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上发生异常,有时会发生接收。
发送回复接收(初始化生成的ID上的内容关联)
receive2(与ID相关,cancreateinstance = false)
发送回复
收到3(与ID相关,cancreateinstance = false)
经过大量调试并确保所有相关设置正确后,新工作流实例的异常消失。
异常是什么意思,它为什么会出现,为什么它会突然消失?它是代码/ xamlx问题还是基础设施问题(AppFabric / SQL)?
我使用AppFabric的SQL持久性,使用IIS / AppFabric托管WF服务。
答案 0 :(得分:1)
根据this支持说明,此错误可能是接收和延迟活动到期之间的竞争条件造成的。这在您的工作流程中是否可行。
答案 1 :(得分:0)
我有点想通了......显然如果你把你的持久性存储区指向2012年之前的SQL,你就会得到错误......所以我所要做的就是把我的persistance商店放在SQL 2012中...... / p>
答案 2 :(得分:0)
当我遇到这个问题时,在实例化持久性存储对象时,我的连接字符串中出现了错误。
SqlWorkflowInstanceStore store = new SqlWorkflowInstanceStore(connStr);
我意识到这是一个老问题,但修复连接字符串在运行store.Execute()
时摆脱了我的错误,所以我想我会分享!