【问题标题】:Access To Message Queue System Denied Windows 7 Reading Windows 2003 - Windows 2008访问消息队列系统被拒绝 Windows 7 读取 Windows 2003 - Windows 2008
【发布时间】:2011-03-27 12:37:05
【问题描述】:

我有一个应用程序可以读取/写入远程应用程序服务器上的消息队列。客户端通常在服务器域/森林之外的机器上运行,没有信任设置。

在 Windows XP 中这没有问题,但随着 Windows 7 的引入,它停止了工作。

经过一番研究,我发现了建议的服务器注册表调整(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters\Security 修复中的 NewRemoteReadServerAllowNoneSecurityClient DWORD)并实现了,但软件仍会抛出拒绝访问消息队列系统的异常。

我们测试服务器上的消息队列系统是完全开放的,可以完全控制每个人和匿名登录帐户。

我错过了什么?

【问题讨论】:

  • 我还应该补充一点,该软件可以在 Windows 7 机器上完美运行,并且用户在与服务器相同的域/林中登录。但是,如果我退出并登录到不同的域或仅登录到本地计算机,访问 MSMQ 系统将被拒绝。

标签: c# security windows-7 msmq


【解决方案1】:

我已经与 Microsoft 支持打交道一个多星期了,他们已经确认这是 Windows 7 和 Windows Server 2008 中的一个错误。我会回来添加更多关于他们何时期望修复的详细信息或当我有该信息时的解决方法,但目前看来这只是一个错误并且不可行。

【讨论】:

  • 支持工程师是 Imelda,他告诉我这个补丁可能会包含在 Windows 2008 SP3 中。
  • 目前没有。实际上,我们已经放弃了操作系统方面的任何系统性解决方案,基本上是在为任何跨域通信编写 MSMQ 代码,转而使用 Net.Sockets 实现。
【解决方案2】:

【讨论】:

  • 嗨,约翰,实际上我已经阅读了所有这些内容。我没有尝试过的唯一解决方案是在域之间建立双向信任关系,这是因为这在我们的环境中不是一个选项(或者我被负责环境这方面的人员告知)。到目前为止,我已经在注册表中添加了必要的 DWORD 键/值,重新启动了服务器,在 MSMQ 系统上尽可能地给予了开放权限,但仍然没有骰子。
【解决方案3】:

您能否澄清一下您是否在发送或接收时遇到问题? 发送和接收使用不同的网络协议,解决问题的方法完全不同。 正如您提到的应用程序引发异常,那么我将假设您仅在远程读取操作时获得拒绝访问。

听起来像是 NewRemoteReadServerAllowNoneSecurityClient 问题。您写道“到目前为止,我已经在注册表中添加了必要的 DWORD 键/值,并重新启动了服务器”——您在哪台计算机上更改了设置?

干杯

约翰·布雷克韦尔

【讨论】:

  • 远程读取异常。已对存在队列的服务器进行注册表更改。 Win7 --READ--> Q on Win2K3 修改注册表
猜你喜欢
  • 2011-04-29
  • 2012-04-10
  • 2011-09-24
  • 2012-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-28
相关资源
最近更新 更多