Windows 7 MSMQ读取远程专用队列时出现问题(再次)
好的,我的问题类似于(我基本上使用相同的代码) 我正在主机上使用创建队列Windows 7 MSMQ读取远程专用队列时出现问题(再次),windows-7,windows-xp,msmq,Windows 7,Windows Xp,Msmq,好的,我的问题类似于(我基本上使用相同的代码) 我正在主机上使用创建队列 MessageQueue.Create(@".\Private$\MyNewPrivateQueue"); 使用打开远程计算机上的队列 var queue = new MessageQueue(@"FormatName:DIRECT=TCP:xxx.xxx.xxx.xxx\PRIVATE$\MyNewPrivateQueue"); 以及使用queue.send()和queue.Receive()写入/读取数据 我正在试
MessageQueue.Create(@".\Private$\MyNewPrivateQueue");
使用打开远程计算机上的队列
var queue = new MessageQueue(@"FormatName:DIRECT=TCP:xxx.xxx.xxx.xxx\PRIVATE$\MyNewPrivateQueue");
以及使用queue.send()和queue.Receive()写入/读取数据
我正在试验两种系统
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters\Security\AllowNonauthenticatedRPC
允许我从远程专用队列读取消息。然而,这似乎不允许使用
GetPrivateQueueByMachine(String machineName)
枚举可用的专用队列。对这个有什么想法吗?好的。。我显然没有读到我需要读的全部内容。答案是: 我需要添加一个新的注册表项:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters\Security\AllowNonauthenticatedRPC
并将该值设置为1
一旦我在W7服务器上这样做了,我就可以从XP机器上读取队列
我是唯一一个认为这很奇怪的人,任何人都可以写入队列,但我必须将其设置为从队列读取?这太奇怪了 不,不奇怪。队列的发送和接收使用完全不同的网络协议。MSMQ(和HTTP)协议用于发送/推送消息;RPC协议用于接收/拉取消息。这些协议实际上是粉笔和奶酪,有着完全不同的麻烦点。@John。。好的,考虑到使用了两种不同的协议,我可以看到这意味着读/写的行为不同,所以这并不像我想象的那么奇怪。另一方面两个完全不同的协议;-)是:-)MSMQ设计于20世纪90年代中期,是在互联网出现之前,作为一种适用于公司局域网的推送技术。RPC已经可用,因此无需重新发明轮子。如果MSMQ是在过去5-10年中设计的,它会有很大的不同。这与右键单击(在计算机管理、服务和应用程序内部)消息队列、属性、服务器安全选项卡并清除“禁用未经身份验证的RPC调用”复选框相同吗?@John根据此链接,是: