我正在尝试使用ASP.NET MVC中的StateMachineWrokflowInstance
查询正在运行的状态机工作流。
以下是该方案:
工作流运行时配置:添加了SqlWorkflowPersistenceService
,ManualWorkflowSchedulerService
,ExternalDataExchangeService
和已注册的自定义ExternalDataExchange
服务ExternalDataExchangeService
;
执行顺序:
var instance = WorkflowRuntimeHandle.CreateWorkflow(type);
instance.Start();
WorkflowRuntimeHandle.GetService<ManualWorkflowSchedulerService>
().RunWorkflow(instance.InstanceId);
var stateMachineWorkflowInstance = new
StateMachineWorkflowInstance(instance.WorkflowRuntime, instance.InstanceId);
收到错误:
System.InvalidOperationException: Workflow with id "[GUID]" not found in
state persistence store?
我做错了什么?
答案 0 :(得分:1)
显然这个例外可能有很多原因。
我找到了一种检测罪魁祸首的方法。
我为所有工作流运行时事件添加了处理程序,并将序列作为历史记录存储在列表中,并从列表中发现在调用RunWorkflow
后工作流终止。
WorkflowTerminated
事件参数WorkflowTerminatedEventArgs
附带Exception
属性,其中包含显示问题真正根源的内部异常。
我在这里张贴这篇文章,希望这种经历对那些正在阅读的人有益。