我们有一个用于管理文档生命周期的业务逻辑。
这是使用 Workflow Foundation 4 和 WF Persistence 实现的。在工作流执行过程中,会在工作流中创建某些书签,并且计划任务会定期查找所有特定书签并恢复工作流(正在执行的活动会执行一些处理并再次为工作流添加书签,以便以后可以恢复工作流。 )
现在对于工作流的一些正在运行的实例,我们收到以下错误:
System.Runtime.DurableInstancing.InstanceNotReadyException 未处理 Message=InstancePersistenceCommand 的执行被中断,因为实例 '99ce9413-5b17-4de0-a453-46891509e032' 尚未持久化到实例存储。 源=System.Runtime.DurableInstancing 堆栈跟踪: 在 System.Runtime.AsyncResult.End[TAsyncResult](IAsyncResult 结果) 在 System.Runtime.DurableInstancing.InstancePersistenceContext.OuterExecute(InstanceHandle initialInstanceHandle,InstancePersistenceCommand 命令,Transaction 事务,TimeSpan 超时) 在 System.Runtime.DurableInstancing.InstanceStore.Execute(InstanceHandle 句柄,InstancePersistenceCommand 命令,TimeSpan 超时) 在 System.Activities.WorkflowApplication.PersistenceManager.Load(时间跨度超时) 在 System.Activities.WorkflowApplication.LoadCore(时间跨度超时,布尔 loadAny) 在 System.Activities.WorkflowApplication.Load(Guid instanceId,TimeSpan 超时) 在 System.Activities.WorkflowApplication.Load(Guid instanceId)
以前相同的实例已成功加载。
我有几个与此异常相关的问题:
- 我们什么时候可以得到这个异常?
- 如果我们得到这个异常,是否有任何优雅的方式来处理它,以便以后可以恢复相同的实例?
- 还有什么方法可以修复由于此异常而无法恢复的现有工作流实例?