【发布时间】:2015-11-23 08:10:14
【问题描述】:
我有一个非常简单的控制台应用程序,它无法查看远程私人队列中的消息。
var queues = MessageQueue.GetPrivateQueuesByMachine(machineName);
var queue = queues.Where(x=>x.FormatName == queueName).Single();
Message message = queue.Peek();
Peek 调用失败,出现“拒绝访问消息队列系统”的 MessageQueueException。
使用相同的客户端计算机和用户,我可以使用队列资源管理器和消息队列管理单元查看队列。
尝试使用本地队列我只能通过取消队列的 Peek 权限来重现错误,但这也会在其他工具中停止它。
我看到很多信息指出了here 概述的问题。
但是,如果其中任何一个是问题所在,我似乎也无法使用其他工具来解决。
编辑 我已经能够使用MSMQQueueInfo/MSMQQueue COM 对象使其工作,而无需更改任何凭据。 如果我能使用 .NET 库让它工作就好了,但至少我有一个解决方法。
【问题讨论】:
-
你在 machineName 和 queueName 中放了什么?你是如何初始化它们的?您如何以及将什么消息放入 MessageQueue?
-
这个例子有点简化。我在列出队列或选择我感兴趣的特定队列时没有任何问题。对于这种特殊情况,我正在查看来自我们的一个生产应用程序的错误队列。我知道队列中有消息,因为我可以使用其他工具查看它们。
-
你配置了哪些权限?