2011-07-28 14 views
0

私は、各シーケンスがReceiveAndSendReplyアクティビティで構成される3つのシーケンスアクティビティを持つWWFを持っています。WFサービス呼び出しシーケンスプロブラム

Ex: 
Sequence A 
ReceiveA (ApplicationObject) 
SendReplyA(ApplicationObject)-> initialize correlation with the user defined ID (ApplicationObject.id) 
Sequence B 
ReceiveB (ApplicationObject) -> correlation on with the ID 
SendReplyB (Boolean) 
Sequence C 
ReceiveC (ApplicationObject) -> correlation on with the ID 
SendReplyC (Boolean) 

3つのサービスが3つの結果的な段階で呼び出されます。 私は2つの問題

1)シーケンスBまでの流れ作業の罰金を持っている、しかし、私はReceiveCを呼び出すときに、私はInstancePersistenceCommandの実行が中断された

クライアント側でエラーが発生しましたので、インスタンスキー " 8f7ff672-1aba-35f1-f7d8-7dca44343be7 'はインスタンスに関連付けられていませんでした。

2)ときどきReceiveBを何度も呼び出す必要があります。しかし、2回目にReceiveBを呼び出すと、次のエラーメッセージが表示されます。

操作 'ApplicationScreeningRequestは| {http://tempuri.org/} IApplicationService' '858ce665-6785-4840-8812-d277b2574a10' 識別子を有するサービスインスタンスには、この時点で行うことができません。操作が正しい順序で実行されていること、および使用中のバインディングが順序付き配送保証を提供していることを確認してください。

誰でもこの問題を解決するのに役立つことができます。

答えて

1

多分私は何かが不足しているかもしれませんが、通常はReceiveBを最初に呼び出すと、ワークフローはシーケンスCに進みます。その時点でReceiveBはアクティブでなくなり、後続の呼び出しは失敗します。

同様に、ReceiveCを呼び出し、関連付けられているIDがReceiveBにあるインスタンスは失敗します。

それぞれのReceiveでワークフローの新しいインスタンスを開始しますか?その場合、これはWF4であり、ユビキタスMauriceにはWorkflow Receive activity and message correlationという素晴らしいブログエントリがあります。

関連する問題