我正在尝试使用MSMQ,并且可以让发送器/接收器在本地计算机上工作。现在我正在尝试让发件人从另一台机器上工作并将消息发送到远程专用队列,但现在我的发送者说它发送了一条消息但是没有收到任何消息 - 或者看起来它已经被发送到了我可以说。
我确保它连接到删除专用队列,如下所示:
FormatName:Direct=TCP:ipaddress\private$\TestQueue
其中ipaddress是我的远程计算机的正确地址。然后,我可以在计算机管理中看到为此队列创建了传出队列。然而,当我使用Send()方法时,它完成并且什么都不做。传出队列中没有任何内容,并且肯定不会出现在远程计算机上。它也没有任何错误地做到这一点 - 它什么也不做,继续。
我尝试使用本文http://beaucrawford.net/post/MSMQ-ndash3b-Sending-Messages-to-Remote-Queues.aspx添加确认代码但是它确实抛出一个异常,说明在确认队列中找不到请求的消息。
有什么想法吗?在我可以进行分布式消息队列之前是否需要配置哪些内容?
更新
发现它与我发送到的队列的权限有关。使用下面的答案,我打开死信排队,找出消息的去向,发现消息被发送到远程专用队列,但访问被拒绝。
答案 0 :(得分:5)
很可能队列上的权限不足。
在您的代码中启用负源日记功能,以获取解释缺少传递的死信队列消息。
http://technet.microsoft.com/en-us/library/cc739818(WS.10).aspx
干杯
John Breakwell