C#获取系统队列中的MSMQ消息

本文关键字:MSMQ 消息 队列 获取 系统 | 更新日期: 2023-09-27 18:29:05

所以C#允许我使用GetPrivateQueues和GetPublicQueues,但没有什么可以获得系统队列。我已经写了这个代码

string deadLetterQueuePath = @"formatname:DIRECT=OS:.'system$;DeadLetter";
MessageQueue deadLetterQueue = new MessageQueue(deadLetterQueuePath);
Message[] messages = deadLetterQueue.GetAllMessages();
foreach (Message message in messages)
{
    Console.WriteLine(message.ToString());
    Console.ReadLine();
}

代码在MessageQueue行失败。这是我得到的错误

指定的格式名称不支持请求的操作。例如,不能删除直接队列格式名称。

这可能只是在我的Windows 8电脑上运行的限制吗?我做错什么了吗?这可能是权限问题吗?因为我使用的帐户不是本地管理员,即使我可以拉私人和公共队列?

感谢

C#获取系统队列中的MSMQ消息

如果是权限问题,我刚才在旧的MSMQ新闻组中回答的一些问题可能会有所帮助。

没有对死信或任何系统队列的手动或编程访问

所以上面的代码很好。只是对我的Windows 8盒子不起作用。在我的一台MQ Server 2012服务器上运行良好。