NServiceBus 消息处理程序未按预期顺序触发 Saga 处理程序提前触发

标签 nservicebus

我们正在使用我们自己的主机并希望指定一个处理程序首先触发。我们有一个消息验证处理程序,我们希望在 Saga 处理程序之前触发它。我们尝试使用下面的代码设置顺序,但在我们的日志中查看我们的 saga 消息处理程序首先触发,然后验证处理程序触发。被难住了,想知道这个传奇是否与它有关?
如果您有任何想法,请告诉我们。

来自这里的文档:http://docs.particular.net/nservicebus/handlers/handler-ordering

NServiceBus.Configure.With()
 ...
 .UnicastBus()
      .LoadMessageHandlers<First<YourHandler>>()

我们的代码如下所示:
var bus =  Configure.With()
    ...
    .UnicastBus()
          .LoadMessageHandlers(new First<ValidationHandler>())

最佳答案

将您的代码更改为 NServiceBus 常见问题解答中的示例。我有同样的问题,我也在做

.UnicastBus()
      .LoadMessageHandlers(new First<ValidationHandler>())

当我切换到
.UnicastBus()
      .LoadMessageHandlers<First<YourHandler>>()

它以预期的顺序运行处理程序

关于NServiceBus 消息处理程序未按预期顺序触发 Saga 处理程序提前触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5553219/

相关文章:

c#-4.0 - 为什么在启动我的服务时会出现完成消息?

NServiceBus信息

concurrency - 特定的 NServiceBus Sagas : Concurrent Access to Saga Data Persisted in Azure Table Storage

log4net - 在 NServiceBus 初始化中为 Log4Net 设置 BufferSize

c# - NServiceBus - 类型未在序列化程序中注册 - 修复?

c# - NServiceBus 发布/订阅

sqlite - 服务帐户在NServiceBus启动时抛出SQLiteException

c# - NServiceBus 在此 WCF MVC 场景中有用吗?

msmq - 即时和计划的业务事务 - MSMQ/NServiceBus/MS Sql Service Broker/Windows 任务计划程序?

architecture - 使用NServiceBus的多线程CQRS