Windows サービスを使用してメッセージを選択するソリューションがあります。
Windows サービスは 2 分ごとに起動し、MSMQ メッセージを取得して Web サービスに渡します。
- MSMQ キューからメッセージを自動的に取得する WCF サービスを作成できますか?
- 自動呼び出しをサポートしている場合、WCF サービスを使用して Windows サービスを回避できますか?
Q1:MSMQからメッセージを自動的に取得できます。netmsmqbindingを調べる必要があります。ただし、ネイティブMSMQに慣れている場合は、次の機能があることを知っているので、考慮しなければならない設計上の考慮事項がいくつかあります。メッセージをのぞいてください。ただし、WCFを使用すると、その覗き見能力が失われます。WCFはMSMQのメッセージをインターセプトし、WCFサービスとピークアプリの同期を維持する責任があります。また、トランザクションキューと非トランザクションキューのどちらが必要かを調べる必要があり、それに基づいてバインディングを変更する必要があります。
Q2:WindowsサービスまたはIIS7でWCFサービスをホストする必要があります。IIS7でホストする場合は、MSMQWASリスナーの有効化を検討してください
ここに素晴らしい記事があります:http: //blogs.msdn.com/tomholl/archive/2008/07/12/msmq-wcf-and-iis-getting-them-to-play-nice-part-1.aspx
MSMQ から Web サービス呼び出しにメッセージを転送する 1 つの方法は、同じコントラクトをサポートする netMsmqBinding サービス エンドポイントと basicHttpBinding クライアント エンドポイントを使用することです。netMsmq サービスは、キューからメッセージを自動的に取得し、それらをオブジェクトに逆シリアル化します。netMsmq サービスの実装では、basicHttp クライアント プロキシをインスタンス化し、同じメソッドを呼び出すだけです。基本的に、Web サービスから MSMQ へ、およびその逆のパススルーまたはプロキシ パターン。Juval Lowy の「プログラミング WCF」では、このパターンをキューの「HTTP ブリッジ」と呼んでいます。