2011-01-05 4 views
3

J'ai un workflow avec corrélation. Lorsque j'appelle deux fois une méthode avec les mêmes paramètres j'ai l'erreur suivante:Flux de travail dupliqué avec corrélation

L'exécution d'une InstancePersistenceCommand a été interrompue par une collision de clé. La clé d'instance avec la valeur 'bcd874f3-1d47-d9f0-de51-4487d1e4e12e' n'a pas pu être associée à l'instance car elle est déjà associée à une instance différente.

Y a-t-il un moyen de supprimer le flux de travail précédent et de commencer à nouveau?

Répondre

1

Vous pouvez ajouter un WorkflowControlEndpoint au WorkflowServiceHost et utiliser le WorkflowControlClient pour terminer le workflow existant avant d'en lancer un nouveau avec la même clé de corrélation.

+0

Merci, mais pour terminer le flux de travail j'ai besoin de son InstanceId. Je ne le sais pas. Particulièrement je ne sais pas si le workflow existe. –

+0

Vous savez qu'il existe un workflow avec le même ID de corrélation. Vous pouvez donc ajouter une opération de service pour renvoyer l'ID d'instance du workflow existant. Une alternative consiste à utiliser la propriété de promotion pour que la valeur utilisée pour la corrélation puisse être interrogée dans le magasin d'instance et obtenir l'ID de l'instance de cette manière. – Maurice

Questions connexes