已接收但未传送 MSMQ 消息 Windows 2008 R2

标签 msmq

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

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

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

Message came over network

但是,消息并未传递到 myReceivingServer 上的 myPrivateTransactionalQueue。到目前为止我看过的事情:

  1. myReceivingServer 上的应用程序事件日志没有错误
  2. 在 myPrivateTransactionalQueue 上,“所有人”和“匿名登录”均被授予完全控制权
  3. myReceivingServer 上的事务性死信队列为空
  4. mySendingServer 上的临时传出队列为空

我有点发疯,因为我根本无法解释这条消息。任何帮助将不胜感激。

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

Edit2:好吧,我讨厌这个,但问题就这样自行解决了。我没有更改上述配置中的任何内容。但我现在已经可以使用了。

Edit3:这是来自 John Breakwell 的评论:为了确保您再次看到此问题时知道根本原因(并且没有理由相信它已经永远消失),您需要启用一些选项,例如否定我的博客中提到的源日志。现在您知道您的系统没有弹性,是修复它的好时机

最佳答案

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

关于已接收但未传送 MSMQ 消息 Windows 2008 R2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6469095/

相关文章:

c# - 是否有可能使用 MSMQ MessageQueue.Peek 超时丢失消息?

c# - 当 MSMQ 服务器重新启动时,远程 MSMQ 连接显然丢失问题

powershell - 使用 Powershell 将 MSMQ 消息从一个队列移动到另一个队列

c# - 跨应用程序通信 (C#)

c# - 除了字符串,我还可以将什么传递给消息队列?

c# - 我能否以编程方式更改全局 MSMQ 设置?

delphi - 消息队列中的访问被拒绝

c# - MSMQ接收和删除

active-directory - MSMQ 广告权限

msmq - 我们可以在 MSMQ 中添加消息以供将来处理吗