【发布时间】:2015-01-24 03:58:25
【问题描述】:
执行以下窗口: 计算机管理 -> 消息队列 -> 私有队列 -> {MyQueue} -> 队列消息 显示队列中的所有消息或前 1000 条消息?以及如何查看所有消息?
详细说明:
我有一个私有事务 MSMQ 队列,它在队列消息窗口中正确显示,直到队列中的消息数超过 800-1500。然后,当添加新消息时,它不会出现在 {MyQueue} -> Queue messages 窗口中,但是,在 Message Queuing -> Private Queues 窗口中我可以看到 myqueue 中的消息数量有所增加。
我尝试通过代码添加消息(行为如前所述):
// Create MSMQ message
var msg = new Message();
msg.Body = "Hello world";
msg.Label = "Now you see me";
msg.UseDeadLetterQueue = true;
msg.UseJournalQueue = true;
msg.AcknowledgeType = AcknowledgeTypes.FullReachQueue | AcknowledgeTypes.FullReceive;
msg.AdministrationQueue = new MessageQueue(@".\private$\audit");
// Send MSMQ message
var mq = new MessageQueue(@"FormatName:DIRECT=OS:.\private$\myqueue");
mq.Send(msg, MessageQueueTransactionType.Single);
更有趣的是,我可以在代码中检索“不可见”的消息:
// Retrieve MSMQ message
mq.MessageReadPropertyFilter.SetAll();
var allMessages = mq.GetAllMessages();
DateTime today = DateTime.Now.Date;
var messages = allMessages.Where(m => m.ArrivedTime > today).OrderByDescending(m => m.ArrivedTime).ToList();
对此队列集没有明确限制。
如何查看队列中的所有消息?
a) 在计算机管理 -> 消息队列 -> 私有队列 -> {MyQueue} -> 队列消息
b) 或其他一些免费工具?
【问题讨论】: