error-handling - NServiceBus 消息处理程序不会在异常时进入 'error' 队列

标签 error-handling nservicebus

我有一个示例 NServiceBus 应用程序来测试水域.. 一切顺利,发送和处理工作正常。

我故意在某个消息处理程序中抛出异常以查看会发生什么 - 但没有任何 react 。异常被正确记录到控制台,但消息被从队列中拉出,而不是像我期望的那样放在错误队列中。此外,5 次重试也没有发生。这是正确的行为吗?

此外,队列在首次指定时在启动时正确创建。

服务器的配置和引导代码(处理程序所在的位置在下面)

配置:

<MsmqTransportConfig
  InputQueue="SiteServer1"
  NumberOfWorkerThreads="1"
  MaxRetries="5"
  ErrorQueue="SiteServer1Errors"
/>

程序.cs:
var bus = NServiceBus.Configure.With()
  .Log4Net()
  .CastleWindsorBuilder(container)
  .XmlSerializer()
  .MsmqTransport()
  .UnicastBus()
    .LoadMessageHandlers()
  .CreateBus()
  .Start();

我在这里错过了什么吗?

最佳答案

我修改了 bootstrap 代码以包含

.IsTransactional(true)

在总线配置上,现在它正在工作!非事务性消息似乎是一次性的。说得通!

关于error-handling - NServiceBus 消息处理程序不会在异常时进入 'error' 队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6928983/

相关文章:

php - PHP替代方法,用于处理格式错误的输入,而不是引发错误

javascript - promise 没有正确捕获错误NodeJS

发往群集 MSMQ 实例的 MSMQ 消息卡在传出队列中

.net - 使用 NServiceBus FileShareDataBus 时清理文件

c# - 防止机器名称附加到端点名称

java - 显示 SQL 错误信息

error-handling - 如何在 flutter 中使用 bloc 模式进行错误处理?

python中的php set_error_handler等效函数

entity-framework - 从 NServiceBus 方法调用 Entity Framework 会导致错误

NServiceBus 和 DTC