ASP.NET MVC中的InvalidOperationException和Workflows

时间:2009-12-01 17:36:06

标签: c# .net asp.net-mvc workflow workflow-foundation

我正在尝试使用ASP.NET MVC中的StateMachineWrokflowInstance查询正在运行的状态机工作流。

以下是该方案:

  1. 工作流运行时配置:添加了SqlWorkflowPersistenceServiceManualWorkflowSchedulerServiceExternalDataExchangeService和已注册的自定义ExternalDataExchange服务ExternalDataExchangeService;

  2. 执行顺序:

    var instance = WorkflowRuntimeHandle.CreateWorkflow(type);
    instance.Start();
    WorkflowRuntimeHandle.GetService<ManualWorkflowSchedulerService>
    ().RunWorkflow(instance.InstanceId);
    
    var stateMachineWorkflowInstance = new
    StateMachineWorkflowInstance(instance.WorkflowRuntime, instance.InstanceId); 
    
  3. 收到错误:

    System.InvalidOperationException: Workflow with id "[GUID]" not found in 
    state persistence store?
    
  4. 我做错了什么?

1 个答案:

答案 0 :(得分:1)

显然这个例外可能有很多原因。

我找到了一种检测罪魁祸首的方法。 我为所有工作流运行时事件添加了处理程序,并将序列作为历史记录存储在列表中,并从列表中发现在调用RunWorkflow后工作流终止。

WorkflowTerminated事件参数WorkflowTerminatedEventArgs附带Exception属性,其中包含显示问题真正根源的内部异常。

我在这里张贴这篇文章,希望这种经历对那些正在阅读的人有益。