连接到Windows XP上的MSMQ的Windows 7客户端失败 – 看起来像是RPC失败

我有一个XP框运行一些MSMQ公共队列。 Windows 7客户端不能连接到这些,但Windows XP客户端可以。 从Windows 7客户端连接到MSMQ队列浏览器程序时,出现以下错误消息:

在这里输入图像说明

当build立一个新的XP盒子,在域中注册,安装队列浏览器,一切都很棒。 我还应该注意到,我的Windows 7盒子没有任何问题连接到运行MSMQ的其他XP盒子,只是其中一些(所有运行最新的服务包)。

经过大量的debugging,我似乎将问题隔离到RPC调用。 在使用Queue Explorer和rpcping时,我看到以下问题。 下面提供的示例是通过使用rpcping和以下命令:

rpcping -s xp-host-1 -a integrity -u 9 && rpcping -s xp-host-2 -a integrity -u 9 

xp-host 1有问题,xp-host-2是没有问题的全新安装。 从wireshark检查数据提供了这种观点。 很显然,最后一次RPC调用成功了,因为您将看到另外两个对第二个主机的调用。

在这里输入图像说明

检查数据包显示没有明显的差异,但是当使用队列浏览器对两个不同的服务器(两个XP),我们看到一个区别。 这似乎与身份validation/挑战/响应或某事有关,但我正在努力找出什么。

在这里输入图像说明

有没有人有任何想法我可以尝试解决这个问题? 我试图禁用我的客户端上的不同types的身份validationtypes无济于事。 我只试过lanman,ntlm v1,ntlm v2等等。

其他一些事实:

  • 事件日志中没有关于此的信息
  • MSMQ错误代码没有提供很多信息。 基本上他们的意思是“有些不好,我们不知道是什么”。
  • 如果我使用IP地址而不是主机名,MSMQ不会给出错误,但不允许我查看公共队列。

编辑1更多图片:

它看起来像是创build问题的rpc__mgmt_inq_princ_name请求。 在图片的左侧我尝试连接到主机不工作,在右侧我连接到相同的操作系统。

在这里输入图像说明

将MSMQ服务设置为本地服务帐户时,问题已解决。 以前的用户是一个域pipe理员帐户。