2009-05-28 5 views
3

MSMQを使用してWCF経由で別のサービスにオブジェクトを送信するシステムがあります。このサービスは、メッセージをうまく取り上げて、それが持つべきことをします。しかし、私が今問題にしているのは、呼び出し側のシステムに応答を送る必要があるということです。
例:WCF MSMQコールバック関数

  1. は、Windowsサービス
  2. を使用してキューからメッセージをピックアップ
  3. MSMQ
  4. 上でWCFを使用してサービスにメッセージを送る移入情報
  5. をCustomerオブジェクト
  6. を作成します。窓サービスのCustomer.Insert()メソッドを呼び出す
  7. 新しい顧客IDを呼び出しアプリケーションに送り返す必要があります。

答えて

3

あなたは、MSMQと二重通信を使用しますが、ネイティブに、my article

1

MSMQ操作は一方向にする必要があります。メッセージを受け取ったと考えることができる唯一の方法は、コールするアプリケーションが、応答MSMQバインディングがないためサービスをホストすることです。

4

エマニュエルが指摘しているように、MSMQメッセージは一方通行で設計されており、実際には応答がありません。

あなたの最善の解決策は、「他のサービス」が自分の応答メッセージをドロップできる応答キューを用意することです。クライアントはそのキューを監視する必要があります。新しいメッセージのためにしばらくの間(毎分、30分おきに - あなたにとって意味のあるもの)それをチェックし、それらを処理してください。

両面(2方向)MSMQチャネルはありませんが、両方向のキューを簡単に作成できます。

マルク・

+0

に見てみないいやうーん、私は心配していたものをthatsのことができます。情報のためにHmmmmmありがとう – Neale