2

IIS でホストされている MSMQ を使用する WCF サービスがあります。WCF サービスが MSMQ メッセージを選択するのを停止できる Windows アプリケーションを作成したいと考えています。キューに MSMQ メッセージが表示されたら、ボタンをクリックして WCF サービスを開始し、MSMQ 内のメッセージを選択する必要があります。コードサンプルをお楽しみください。

4

3 に答える 3

1

IIS は、MSMQ クライアントをホストする適切なコンテナーではありません。これは、トラフィックが少ない時間帯にアプリ プールがアンロードされると、キュー クライアントもアンロードされるためです。この動作は自動であり、制御することはできません。

Windows サービスでクライアントをホストする方がはるかに優れています。ただし、必要な「オンデマンド消費」機能を実現するのは簡単ではなく、標準バインディングではサポートされていません。

私が提案できる最善の方法は、メッセージを受信したらすぐに消費し、ユーザーがボタンをクリックするまでどこかに保持することです。ボタンをクリックすると、メッセージ内のデータが既に利用可能になっているため、必要なことは何でもできます。

于 2012-06-21T08:31:39.433 に答える
1

回避策を適用することで、この問題を解決できました。別のマシンに別のキューを作成しました。config で、WCF クライアント エンドポイント アドレスのアドレスをこのキューに変更しました。メッセージを代替キューから実際のキューに移動する別の外部アプリケーションを作成しました。したがって、MSMQ バインディングを使用して IIS がホストする WCF サービスを停止する動作が実現されました。

于 2012-06-27T11:22:55.960 に答える