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