gpt4 book ai didi

c# - 使用 MSMQ 将失败的消息与 NServiceBus 中的异常匹配

转载 作者:行者123 更新时间:2023-12-03 07:51:10 26 4
gpt4 key购买 nike

使用标准 IServer 配置选项设置 NServiceBus 和 MSMQ 时,您定义:

  • 输入队列
  • 一个错误队列。

  • 当您的 NServiceBus 消息处理程序因任何原因无法处理消息时,它会引发异常并将消息移动到错误队列中。

    错误队列中的消息是否与输入队列中的消息完全相同?如果是这样,我想是这样,有没有办法知道为什么这些消息失败了?是否有任何附加到它们的元数据可能包含引发的原始异常?

    当您的处理程序设置为重试次数大于一时,能够做到这一点将特别有用。这是因为即使可能在处理程序中抛出 fatal error 并记录下来,它们在进入错误队列之前并不是真正的 fatal error ,因为那是它们实际失败的时候。

    有任何想法吗?

    干杯

    最佳答案

    它是发送到错误 q 的消息的精确副本。消息 id 和源队列存储在 header 中,以使消息能够被重放。在 2.5 中,没有很好的方法来获取失败消息的异常详细信息,因此您必须将消息 ID 与日志文件条目相关联。 NSB 为您重新连接的事实通常会导致同一条日志消息多次显示一条消息,因此请确保使用最后一个条目。

    这当然不是非常用户友好,并且已在即将发布的 3.0 中修复,您可以在其中注册故障管理器,让您连接到 NSB 以获取此信息。默认的失败管理器会将异常详细信息放在标题中,以便您可以通过查看失败消息轻松获取它们。

    关于c# - 使用 MSMQ 将失败的消息与 NServiceBus 中的异常匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5854219/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com