簡體   English   中英

如何調試未到達遠程服務器的 MSMQ 消息?

[英]How can I debug MSMQ messages not arriving on a remote server?

我有一些代碼可以將消息發送到遠程隊列。

var queue = new MessageQueue(queueName);
var message = new Message(queueMessage, new BinaryMessageFormatter());
queue.Send(message);

我試過使用 IP 和主機名設置隊列,它沒有區別:

格式名稱:Direct=TCP:1.2.3.4\\Private$\\my.queue
FormatName:Direct=OS:servername\\Private$\\my.queue

消息出現在傳出消息隊列中(如果我暫停它)

當取消暫停時,它們將被發送到服務器。

服務器上設置了一個專用隊列。 沒有任何運行可以將消息從隊列中取出。

但是,消息永遠不會出現在遠程機器的隊列中。 我不知道如何調試這個問題。 該隊列是一個私有的非事務性隊列。

創建本地私有隊列並向其發送消息工作正常。

是否有一些日志或我可以查看的內容以了解可能發生的情況?

傳出消息中的狀態顯示為“已連接”,因此不存在連接問題。

編輯:

我能找到的唯一日志記錄是在事件查看器 > microsoft > windows > msmq 中,每當我通過 MSMQ 發送消息時,它都有一個條目簡單地說“消息來自網絡”。 它沒有其他信息。

解決了,我添加了這個:

message.UseDeadLetterQueue = true;

這使得服務器將其放入System Queues > Dead-letter messages下的死信隊列

發生這種情況后,我可以看到我的消息並單擊它,它在“類”標題下顯示“拒絕訪問”。

一個快速的谷歌顯示,即使我已經授予Everyone對隊列的完全訪問權限,也有必要添加Anonymous Logon並在隊列的安全選項卡中授予完全訪問權限。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM