使用此MSDN Article作为暂停和恢复的示例,可以假设这非常简单。这就是我“暂停”工作流程的方式......
LastWfGuid = workflow.Id;
workflow.Unload();
非常简单,它应该持久存储到实例存储(我已经在这两行之前设置),并且我确实在Instance视图和InstancesTable中看到了条目。当我准备好恢复工作流程时,我会这样做......
workflow = new WorkflowApplication( myActivity, myWfArgs );
workflow.InstanceStore = wfStore;
workflow.Load(LastWfGuid);
此时我得到一个InvalidOperationException
,异常消息是......
Workflow inputs cannot be used with Load or LoadRunnableInstance, since they are only provided to new instances.
如果我无法加载以前保留的工作流程,我该如何重新恢复?我尝试过简单地用Persist()
来代替Unload()
,并且从外面看起来没问题,我也没有收到异常。但是,工作流程继续运行它的过程,这不是我正在寻找的。我想暂停然后恢复我的工作流程。
答案 0 :(得分:3)
在创建用于加载现有工作流实例的WorkflowApplication时删除myWfArgs参数。像这样:
workflow = new WorkflowApplication(myActivity);
workflow.InstanceStore = wfStore;
workflow.Load(LastWfGuid);