已收到MSMQ消息但未提供Windows 2008 R2

tom*_*ern 4 msmq

我有一个名为myPrivateTransactionQueue的事务性队列,托管在名为myReceivingServer的Win2008R2服务器上,该服务器应该从另一个名为mySendingServer的服务器接收消息.当mySendingServer发送消息时,mySendingServer上的MSMQ日志中会出现一条条目,其中显示:

Message with ID {f748cc48-8017-4a64-9ff6-61c68564445f}\56008 was sent to queue DIRECT=OS:<myReceivingServerName >\private$\<myPrivateTransactionalQueue>
Run Code Online (Sandbox Code Playgroud)

但是,myReceivingServer,在MSMQ日志中有一个条目:

Message came over network
Run Code Online (Sandbox Code Playgroud)

但是,该消息未在myReceivingServer上传递给myPrivateTransactionalQueue.到目前为止我看过的事情:

  1. myReceivingServer上的应用程序事件日志没有错误
  2. 在myPrivateTransactionalQueue上,"Everyone"和"Anonymous Logon"被授予完全控制权
  3. myReceivingServer上的事务死信队列为空
  4. mySendingServer上的临时传出队列为空

我在这里有点心理,因为我根本无法解释这个消息.任何帮助将非常感激.

编辑:我发现这个链接http://blogs.msdn.com/b/johnbreakwell/archive/2010/01/22/why-does-msmq-keep-losing-my-messages.aspx所以我会看看这是否解释我的问题.将以任何决议回复.

编辑2:好的,我讨厌这个,但问题只是解决了.我在上面的配置中没有改变任何东西.但我现在有了它的工作.

编辑3:这是John Breakwell的评论:为了确保您在再次看到此问题时知道根本原因(并且没有理由相信它已经好转),您需要启用一些选项,例如负面源日记作为在我的博客中提到.现在您知道您的系统没有弹性,现在是修复它的好时机

小智 7

好吧我有完全相同的问题,它要么解决了自己,原因有两个.我更新了我发送的消息中引用的计算机名称(以前它是我的主机中的别名),或者可能只是我在接收服务器上启用了对每个人/匿名者的完全控制并重新启动了计算机.

  • 向我证实,这只是为匿名者和每个人提供完全控制的行为.这样做了轨道并为我节省了许多挫折感.谢谢你的回答! (2认同)