2009-12-01 6 views
0

J'essaie d'interroger un flux de travail de machine d'état en cours d'exécution à l'aide de StateMachineWrokflowInstance dans ASP.NET MVC.InvalidOperationException et Workflows dans ASP.NET MVC

Voici le scénario:

  1. configuration d'exécution du flux de travail: ajouté SqlWorkflowPersistenceService, ManualWorkflowSchedulerService, ExternalDataExchangeService et personnalisée enregistrée ExternalDataExchange avec un service ExternalDataExchangeService;

  2. Séquence d'exécution:

    var instance = WorkflowRuntimeHandle.CreateWorkflow(type); 
    instance.Start(); 
    WorkflowRuntimeHandle.GetService<ManualWorkflowSchedulerService> 
    ().RunWorkflow(instance.InstanceId); 
    
    var stateMachineWorkflowInstance = new 
    StateMachineWorkflowInstance(instance.WorkflowRuntime, instance.InstanceId); 
    
  3. erreur reçu:

    System.InvalidOperationException: Workflow with id "[GUID]" not found in 
    state persistence store? 
    

Qu'est-ce que je fais mal?

Répondre

1

Apparemment, cette exception peut avoir plusieurs causes.

J'ai trouvé un moyen de détecter le coupable. J'ai ajouté des gestionnaires pour tous les événements d'exécution du flux de travail et j'ai stocké la séquence en tant qu'historique dans une liste et j'ai découvert dans la liste que, après RunWorkflow, le workflow a été interrompu.

Le paramètre d'événement WorkflowTerminatedWorkflowTerminatedEventArgs est associé à une propriété Exception qui inclut des exceptions internes indiquant la source réelle du problème.

Je poste ceci ici dans l'espoir que cette expérience serait bénéfique à ceux qui lisent.