1

私のDEVサーバーはWindows2008R2にMSMQがインストールされています。私のローカル開発マシンはWindowsXPで、MSMQもインストールされています。明らかに、それらは2つの異なるMSMQバージョンです。

私のコードには次のようなものがあります

        MessageQueue queue = new MessageQueue(@"formatname:DIRECT=OS:MyDevServer\Private$\MyQueue", QueueAccessMode.Send);
        Message message = new Message(value, new BinaryMessageFormatter());
        queue.Send(message, MessageQueueTransactionType.Single);
        queue.Close();
        return message.Id;

メッセージを送信します。私の意図は、メッセージをDEVサーバーのプライベートキューに表示することです。

このキューをDEVサーバー上に作成し、次の権限を付与します

  • 全員-権限を取得し、メッセージを送信する
  • キューを作成するための私のドメインアカウント-私はすべてを行うことができます
  • MyDevServer $-プロパティの取得、権限の取得、メッセージの送信
  • 匿名ログオン-メッセージの送信

例外なくローカルでコードを実行でき、メッセージIDを取得することもできます。私のローカルWindowsXPのMSMQで、私はOutgoing Queue-> DIRECT=OS:MyDevServer\Private$\MyQueue->を持っていることがわかりQueue Messagesます。新しいメッセージがこのキューに表示されます。しばらくすると、メッセージは消えます。しかし、DEVサーバーのキューのどこにも表示されません。

更新:Win2008R2のMSMQは古いクライアントからのメッセージを受信しません」という投稿を見つけました。これで問題は解決しました。上記のコードは正しいですが、ターゲットホストがトラフィックをブロックしていました。

4

0 に答える 0