2010-08-17 3 views
1

Existe-t-il un moyen de récupérer une exception non gérée sans annuler, interrompre ou abandonner un workflow?Workflow 4 Récupération d'exceptions non gérées

Ce que je voudrais faire est de redémarrer le flux de travail ou simplement enregistrer l'exception si possible. Mon flux de travail est long et hébergé dans une application WorkflowApplication, qui se trouve dans un service Windows. En ce moment, si une exception non gérée est rencontrée, le service est dans l'état "démarré" mais mon flux de travail est mort dans l'eau et je voudrais éventuellement "redémarrer" le flux de travail en action, même s'il doit recommencer complètement sa séquence.

Une compensation est-elle souhaitable dans ce scénario?

Répondre

4

Si vous utilisez la persistance du workflow et que vous annulez, le flux de travail pourra redémarrer à partir du dernier état enregistré dans le magasin. L'ajout d'activités Persist dans des endroits stratégiques de votre flux de travail vous garantit que l'état sauvegardé est un point de départ pour redémarrer.

Notez qu'avec WorkflowApplication en tant qu'hôte, vous devez le recharger vous-même. Le meilleur moyen consiste à ajouter un rappel à la propriété Aborted qui est déclenchée lorsque le flux de travail s'interrompt. Là, vous créez une nouvelle WorkflowApplication et chargez la même instance de workflow pour la reprendre.

+0

C'est exactement la fonctionnalité que je cherchais, merci beaucoup pour l'excellente réponse Maurice :) – jlafay

Questions connexes