【问题标题】:MSMQ Access to Message Queuing system is denied when trying to receive message尝试接收消息时,MSMQ 对消息队列系统的访问被拒绝
【发布时间】:2011-04-28 11:18:29
【问题描述】:

我无法弄清楚为什么在尝试从远程队列接收消息时收到“拒绝访问消息队列系统”错误。 (Msmq 5.0)。

发送到队列没问题,从队列接收。

队列本身的安全性被配置为给予所有人和匿名的完全控制。

知道为什么发送到这个队列不起作用吗? (防火墙不是问题,因为所有防火墙都关闭时错误是相同的。)。

【问题讨论】:

  • 当您说“接收”时,您是如何接收消息的,您是否有控制台应用程序从队列中提取消息或触发器提取消息?
  • 嗨,我昨天找到了答案。没有为远程客户端启用 DTC。一个不同的错误对我来说会比访问被拒绝更清楚。
  • 请将您的评论作为答案发表并标记。

标签: msmq


【解决方案1】:

请参阅此link。尽管远程读取操作不是最佳消息传递模型的一部分,但完全支持从远程非事务性队列读取消息。远程读取通常用于在服务器之间分配工作负载。远程阅读是一个高开销的过程,因此效率低下。在应用程序中包含远程读取操作会限制扩展。

所以考虑一下:

在运行该系列成员的计算机上运行的应用程序 以工作组模式安装的 MSMQ 3.0 将使用安全远程读取 API。工作组计算机无法建立加密通道 远程读取,默认情况下,消息队列服务器托管 包含要读取的消息的队列接受来自 非加密通道上的工作组计算机。修改此默认值 行为,以便 MSMQ 3.0 服务器拒绝来自工作组的请求 电脑,添加 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters\Security\NewRemoteReadServerDenyWorkgroupClient 注册表项(一个 DWORD)并将其设置为 1。

【讨论】:

  • 这个链接帮助解决了我的远程接收操作问题,虽然不是答案中引用的注册表设置,但这个设置为 1:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters\Security\NewRemoteReadServerAllowNoneSecurityClient
【解决方案2】:

我昨天找到了答案。没有为远程客户端启用 DTC。一个不同的错误对我来说会比访问被拒绝更清楚。

【讨论】:

    猜你喜欢
    • 2012-04-10
    • 2011-09-24
    • 2012-11-05
    • 1970-01-01
    • 2011-03-27
    • 1970-01-01
    • 2015-11-23
    • 2013-11-07
    相关资源
    最近更新 更多