7

netMsmqBindingを使用したWCFサービスがあります。クライアントはキューにメッセージを送信でき、サービスの実行中は期待どおりにキューからメッセージを取得します。サービスが実行されていない場合、受信したメッセージはサービスが開始されるまでキューに入れられます。

私の問題は、メッセージがキューにヒットしたときにサービスが開始されないことです。このサービスはIISでホストされているため、IISが要求を受信するまでインスタンス化されません。サービスを参照すると、キュー内のメッセージが処理されますが、明らかにこれはキューを処理するための私の望ましい方法ではありません。

サービスの実装を変更するか、IISのセットアップを変更する必要があると思いますが、どこで何を変更すればよいかわかりません。

アップデート

誰かが実際にWCF上でMSMQを使用していますか?私はこれを短時間機能させました-奇妙なことに、同じサーバー上ののWebサイトでバインディングを有効にしました-しかし、今ではどういうわけか再び機能しなくなりました。

私が抱えている唯一の問題は、キューにメッセージがある場合のサービスのアクティブ化にあります。現在、キューはサービスがインスタンス化されたとき、たとえば.svcファイルを参照したときにのみ処理されます。アプリケーションでnet.msmqプロトコルを有効にし、サイトでnet.msmqバインディングを有効にしました...他に何かする必要がありますか?

4

3 に答える 3

5

非HTTPアクティベーション用にIISを明示的に構成する必要があります。頭のてっぺんの詳細をすべて知りませんが、基本的にはappcmdを使用してnet.msmqバインディングのアクティブ化を構成および有効化する必要があります。

このブログ投稿を確認するか、このスクリーンキャストですべての詳細を確認してください。

于 2009-09-09T12:21:58.383 に答える
3

これにより、私にかかった時間を節約できる可能性があります:http: //msdn.microsoft.com/en-us/library/ms731053.aspx

于 2009-10-23T15:22:16.433 に答える
2

WCF上でMSMQバインディングを使用する際の問題は、主にIISに関連していると思います。

IIS6でWindowsXP/Server2003を使用しても問題はありませんでした。

Windows7またはServer2008をIIS7.5で使用すると、すべてが正常に機能します。

さらに良い提案は、IISではなく、マネージドサービス/WindowsサービスまたはスタンドアロンアプリケーションとしてMSMQを実行することです。

于 2011-09-13T02:35:13.923 に答える