MSMQ读取错误(访问被拒绝)

时间:2011-10-27 15:45:34

标签: c# .net msmq

我在本地计算机上的其他进程中创建了一个队列,如下所示:

MessageQueue.Create(@".\private$\sampleQueue");

在我的阅读过程中,我按照以下方式加入:

var queue = new MessageQueue(@".\private$\sampleQueue");

当我尝试queue.Peek()时,我获得了访问被拒绝的异常。我不在域名上,这只是我的本地工作组计算机。有什么想法吗?

3 个答案:

答案 0 :(得分:3)

MSMQ使用不同的协议进行工作:

  • 推送信息(发送消息)使用 MSMQ 协议。
  • 使用 RPC 协议提取信息(接收消息,获取属性等)。

如果它不是一个简单的权限问题(很可能是这样),那么你需要这篇博文:

了解MSMQ安全性如何阻止RPC流量 http://blogs.msdn.com/b/johnbreakwell/archive/2010/03/24/understanding-how-msmq-security-blocks-rpc-traffic.aspx

干杯
约翰

答案 1 :(得分:2)

如果在计算机管理中单击队列并选择属性,是否在“安全”选项卡上设置了相应的权限?

答案 2 :(得分:2)

创建队列的进程使用的凭据必须与用于读取队列的进程的凭据不同。如果这是必须的,那么您需要在创建队列后专门授予队列所需的读取权限。