我遇到了这个问题,它涉及将 MSMQ 消息从计算机 A(Windows 7)写入位于同一网络中的计算机 B(Windows Server 2008)。只有当消息从本地帐户发送时才会出现此问题;当从我的域用户帐户和本地系统用户(LocalService)发送消息时,它工作正常。
目前为止的信息和故障排除:
机器 A 上的死信队列充满了标有“访问被拒绝”的消息。
计算机 B 上的接收队列已授予“Everyone”组所有权限。这也适用于“消息队列”功能的覆盖安全设置。我还尝试过授予计算机 A 的计算机名称所有权限。
事件显示在计算机 A 的事件查看器/应用程序和服务/Microsoft/Windows/MSMQ/End2End 下,标记为“消息通过网络发送”。但是,事件查看器/Windows 日志/应用程序或安全下没有显示相关消息。
从机器A发送的消息和机器B上的接收队列都启用了事务设置。
我尝试关闭 Windows 防火墙,但没有效果。
问题:我怀疑这与机器 B 无法识别机器 A 上使用的本地帐户有关。是否可以通过某种方式授予该帐户在机器 B 上的正确权限,以便机器 A 可以写入机器 B 的队列?
答案1
事实证明我需要在 MSMQ 队列的安全设置中为用户组“ANONYMOUS LOGON”添加权限“发送消息”。
这些页面让我找到了答案: