回复时复制nservicebus消息头

回复时复制nservicebus消息头,nservicebus,Nservicebus,是否可以说NSB将所有消息头从命令消息复制到应答? 默认情况下,NSB复制自己的标头NSwerviceBus.*,但不是自定义的 我的情况如下: 我有一个传奇故事和一群工人。 Saga通过分发服务器向工人发送消息。 由于某些原因,工作人员无法处理某些消息。它不会失败,只是用特定的回复来回复saga:CannotProcessMessage 我想要的是将每个命令处理3次(Saga应该将此关联起来,而不是NSB重试机制)。我看到3种解决方案: 为每条消息保存一个尝试计数字典。这种解决方案不是很好,因

是否可以说NSB将所有消息头从命令消息复制到应答? 默认情况下,NSB复制自己的标头NSwerviceBus.*,但不是自定义的

我的情况如下: 我有一个传奇故事和一群工人。 Saga通过分发服务器向工人发送消息。 由于某些原因,工作人员无法处理某些消息。它不会失败,只是用特定的回复来回复saga:CannotProcessMessage

我想要的是将每个命令处理3次(Saga应该将此关联起来,而不是NSB重试机制)。我看到3种解决方案:

  • 为每条消息保存一个尝试计数字典。这种解决方案不是很好,因为在消息竖梃的情况下,sagadata将变得非常大

  • 将属性“AttemptCount”添加到我的邮件和回复中。这会起作用,但会影响我的workers界面。工人不应该知道任何有关尝试计数的信息

  • 将“AttemptCount”添加到命令和回复头中。它不会影响workers接口,但我们仍然必须将此头从命令复制到worker中的应答

  • 所以,找到第三个是最好的解决方案,但找不到一种方法说NSB自动将头从命令复制到应答。 可能吗?或者你可以提出其他的解决方案


    谢谢。

    您可以使用消息变体(或v5中的新行为管道)来执行标头复制功能,将其打包到自己的程序集中,然后将其作为每个工作程序的一部分进行部署。

    但是我需要将命令和回复消息从命令复制到回复。在imutateransportmessages.MutateOutgoing中,我只有outgoint transportmessage(reply)请看这里Sean,我们使用的是NSB的早期版本