MSMQでマルチキャストがどのように機能するかを理解しようとしていますが、同じマシンからでもメッセージをまったく受信できません。私は明らかに何か間違ったことをしていますが、何がわかりません。
これが私がいるところです:
と呼ばれる非トランザクションのプライベートキューを手動で作成してMulticastTest
から、マルチキャストアドレスをに設定しました234.1.1.1:8001
。次に、私のテスト送信アプリはこれを行います:
MessageQueue queue = new MessageQueue("FormatName:MULTICAST=234.1.1.1:8001");
queue.Send("Hello World");
これは機能しますが、少なくとも同じマシンの送信キューに表示されるメッセージを送信しているようです。少なくともこれは正しいと思いますが、そうでない場合は教えてください。
そのため、受信アプリを(同じマシン上で、または同じマルチキャストアドレスに構成された別のマシンで)実行しようとしましたが、動作させることができません。私がこれを試してみると:
MessageQueue queue = new MessageQueue("FormatName:MULTICAST=234.1.1.1:8001");
var message = queue.Receive();
それは単に機能しません、Receive()
メソッドは次のように例外をスローします:
指定されたフォーマット名は、要求された操作をサポートしていません。たとえば、ダイレクトキューフォーマット名は削除できません
少なくともメッセージを待機しているのに受信キューを設定しようとして.\private$\MulticastTest
も何も起こらない場合、すべてのメッセージは送信キューに残ります。
だから私は何が間違っているのですか?MSMQが送信キューからメッセージを送信するには、何らかのサービスを実行する必要がありますか?
また、この質問に従ってANONYMOUS USERに完全なアクセス許可を与えようとしましたが、影響はありません。