2011-01-05 6 views
3

Ich habe Workflow mit Korrelation. Wenn ich zweimal eine Methode mit denselben Parametern anrufe, habe ich folgenden Fehler:Duplizierter Workflow mit Korrelation

Die Ausführung eines InstancePersistenceCommand wurde durch eine Schlüsselkollision unterbrochen. Der Instanzschlüssel mit dem Wert 'bcd874f3-1d47-d9f0-de51-4487d1e4e12e' konnte der Instanz nicht zugeordnet werden, da er bereits einer anderen Instanz zugeordnet ist.

Gibt es eine Möglichkeit, vorherige Arbeitsabläufe zu löschen und neu zu starten?

Antwort

1

Sie können dem WorkflowServiceHost einen WorkflowControlEndpoint hinzufügen und den vorhandenen Workflow mit dem WorkflowControlClient beenden, bevor Sie einen neuen mit demselben Korrelationsschlüssel starten.

+0

Danke, aber Workflow zu beenden brauche ich seine InstanceId. Ich weiß es nicht. Insbesondere weiß ich nicht, ob ein Workflow existiert. –

+0

Sie wissen, dass es einen Workflow mit der gleichen Korrelations-ID gibt. Sie können also entweder eine Serviceoperation hinzufügen, um die Instanz-ID aus dem vorhandenen Workflow zurückzugeben. Eine Alternative besteht darin, mithilfe der Property-Heraufstufung den Wert für die Korrelationsabfrage im Instanzspeicher zu verwenden und die Instanz-ID auf diese Weise abzurufen. – Maurice