[英]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.