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

因此,我试图让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; 

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

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

回答:

事件日志仅适用于MSMQ的运行状况。单个消息会发生什么并不重要,并且不会记录在事件日志中。想象一下,如果一百万条消息被丢弃并且必须记录在事件日志中,会发生什么。

以上是 MSMQ事件记录不显示丢弃的消息? 的全部内容, 来源链接: utcz.com/qa/262968.html

回到顶部