1

シナリオは次のとおりです。

私は複数のクライアントを持っており、WCF 要求を使用してワークフロー サーバーに登録し、何らかの通知を受け取ることができます。通知の情報は、別の受信アクティビティを使用して外部システムから受信されます。その後、ワークフローは通知情報を取得し、送信アクティビティとコールバックの相関関係を使用して登録済みのすべてのクライアントをコールバックする必要があります (クライアントは、そこに実装されているコールバック インターフェイスと、登録要求で最初に渡されたエンドポイント アドレスを公開しています)。「ログ実行ワークフロー サービス」アプローチは、永続ストレージで使用されます。

ここで、外部システムから受信した通知の着信情報を、登録要求時に以前に作成された永続化されたワークフロー インスタンスと関連付けて、すべてのクライアントが既に渡されたエンドポイントを使用して通知されるようにする方法を探しています。登録リクエスト。WF 4.0 では、何らかの方法でエンドポイントを手動で保存せずに通知の情報を受け取ったときに、複数のワークフロー インスタンスを再開して実行できますか? はいの場合、どうすればそれを行うことができますか?

また、私のアプローチが正しくない場合は、WCF サービスを使用してそのようなシステムを実行するベスト プラクティスについてアドバイスしてください。

あなたの助けは非常に高く評価されています。

4

1 に答える 1

1

ワークフローサービスでリクエスト相関を使用する場合、相関キーは常に単一のワークフローインスタンスと一致する必要があり、複数のワークフローインスタンスを単一のメッセージに反応させることはできません。したがって、すべての異なる相関キーを使用してメッセージをマルチキャストするか、他の方法でワークフローインスタンスを再開する必要があります。もう1つの方法は、SQLテーブルなどのどこかにリクエストを保存し、クライアントに通知する必要がある場合はワークフローにその場所を定期的にチェックさせることです。

于 2011-06-18T09:48:17.200 に答える