2012-01-17 32 views
7

リモートキューにメッセージを送信しようとしています。私のプロセスは失敗していませんが、リモートキューのメッセージはまだ表示されません。私はそれがメッセージを処理できなかった場合、それが失敗すると思いますか?MSMQリモートキューにメッセージを送信

私のローカルマシンでは、リモートキューは[送信キュー]に表示されていますが、そこにもメッセージは表示されません。ここでは非常に無知で、すべての例は、私がやっていること(つまり、私が仮定している)が正しいことを示しています。 (テスト用簡易)

コード:

using (var transaction = new TransactionScope()) 
    { 
     using (var queue = new MessageQueue(@"FormatName:DIRECT=OS:mymachine\MyQueueQueue")) 
     { 
      XDocument xdoc = XDocument.Parse("<root/>"); 

       var message = new Message(xdoc.ToString()); 
       queue.Send(message, MessageQueueTransactionType.Single); 
     } 

     transaction.Complete(); 
    } 

    Console.Read(); 
} 

何が間違っているのでしょうか?奇妙な...エラーはありませんが、メッセージはどこにも見えません。書き込みはローカルキューに作用します。

答えて

12

ローカルマシンに表示されるキューは、MSMQがマシンからリモートマシンにメッセージを送信する方法です。その上にメッセージがない限り、それについて心配しないでください。その上に何らかの理由でリモートキューが利用できなかったことを示すメッセージがある場合

可能性があります。リモートキューの送信許可を確認します。コールがクロスドメインになっている場合は、アクセス許可にANONYMOUS LOGONを追加する必要があります。

また、MSMQイベントログを有効にしてください(サーバー2008以上を実行している場合)。

UPDATE

あなたがパブリックキューアドレスを呼び出しているように見えます。プライベートキューを使用する必要があります。

FORMATNAME:DIRECT = OS:MYMACHINE \ PRIVATE $の\のMyQueueQueue ALSO

:アドレスはPRIVATE $ディレクティブを除いて同じであるあなたのキュー名myQueueQueueは、キュー・アドレスのようですか?

+0

ありがとう@hugh ....イベントログを見ました...これまでのところ何も見ませんでした。許可を見てください – scarpacci

+0

それは送信/受信パーマされたキューにあったありがとう!私は大いに感謝します。 – scarpacci

+0

私の答えを更新しました –

関連する問題