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

C# Get MSMQ Messages in System Queues

所以 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 行上的代码失败。这是我得到的错误

"The specified format name does not support the requested operation. For example, a direct queue format name cannot be deleted."

这是否只是 运行 对我的 Windows 8 PC 的限制?难道我做错了什么?这可能是权限问题,因为即使我可以拉私人和 public 队列,我使用的帐户也不是本地管理员?

谢谢

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

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

No Manual or Programmatic Access to Dead Letter or Any System Queue