2

次のワークフロー シナリオを実装したいと思い ここに画像の説明を入力
ます。2 つの分岐を持つワークフロー サービスがあります。Operation2 (受信アクティビティ) は、メッセージ ヘッダーから初期化される CorrelationHandle "handle2" と関連付けられます。

ここに画像の説明を入力

フローは次のとおりです

。1) 誰かが Operation1 を呼び出し、Operation2 の相関ハンドラを初期化します。したがって、Operation2 の相関値は Operation1 の相関値と同じではなく、Operation1 の実行時に実行時に取得する必要があります。
2) 相関値を使用するクライアントは、Operation2 を呼び出すことができます。
3) 関連付けが正しくない場合、カスタム ロジックを使用して Operation2 を実行する必要があります。

問題は、最初のサービスを呼び出すときに例外が発生することです。

CorrelationHandle は BookmarkScope '{bookmark scope id x}' で既に使用されているため、BookmarkScope '{bookmark scope id y}' では使用できません



デバッグすると、Operation1 のみを呼び出しても、Operation2 からの「ハンドル 2」も Receive2 アクティビティで何らかの値で初期化されることがわかります!!! そのため、再初期化できないようです。

それを修正する方法はありますか?

アップデート:

問題を再現できるように、ソース コードを含むファイルを添付しました。Operation1 を起動するだけです。

http://dl.dropbox.com/u/27847776/WorkflowCorrelation.zip

事前に感謝します、-

ペトロ

4

2 に答える 2

0

ピックは使用しないでください。Parallel を使用し、会話が確実に終了した場合にのみ終了するように設定します。Parallel には、終了条件を設定できるプロパティがあります。

于 2012-04-02T09:34:08.580 に答える
0

私の経験では、相関ハンドルを再初期化することはできません。関連付けるキーごとに個別の関連付けハンドルを作成する必要があります。

于 2011-10-03T13:44:28.493 に答える