• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

MSMQ事件记录不显示丢弃的消息?

c/c++ 来源:Lee Crabtree 5次浏览

因此,我试图让MSMQ消息从一台机器转发到另一台机器(这很容易 – 我很惊讶),但是从房屋操作方面的要求之一是,我们需要能够看到当远程服务器决定不接受消息时,在某处登录日志条目。例如,如果我试图发送到一个不存在的队列,像这样:MSMQ事件记录不显示丢弃的消息?

MessageQueue remoteQueue = new MessageQueue(@"FormatName:Direct=OS:machinename\private$\notarealqueue"); 

remoteQueue.Send("Test", MessageQueueTransactionType.Single); 

消息进入本地传递队列,并似乎得到通过网络发送,但因为队列不存在,远程MSMQ管理器丢弃该消息。但是,在事件日志中没有我能找到的关于丢在地板上的消息的条目,这让人感到紧张。 Microsoft/Windows/MSMQ/EndToEnd日志似乎只涉及成功的消息,这似乎并不特别有用。有没有我没有看到的日志?

===========解决方案如下:

您可以使用MSMQ死信队列。

message.UseDeadLetterQueue = true; 

随着该启用,如果邮件无法送达会被发送​​给两个系统死信队列中的一个 – 一个用于交易和一个非事务性消息。您还会发现邮件未送达的原因,这是原始目标队列,完整邮件正文,标签等。

您可以使用管理队列的工具之一重新发送或恢复这些邮件。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)