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
所以 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