我们在消息处理程序中使用了 try catch,我们意识到这违反了不处理异常的推荐最佳实践。也就是说,我被要求确定最后一次重试并将消息发送到抑制事务中的另一个队列。但是,消息的发送正在工作,我正在调用 message.SetHeader(也尝试过 Bus.CurrentMessageContext.Headers[EsbService.FirstLevelRetriesHeader] = currentFirstLevelRetryAttempt.ToString();)来实现我自己对重试尝试的跟踪。基本上是在标头中写入一个递增的数字,并查看它何时达到特定值以触发将消息发送到另一个队列。它似乎在向它写信,但是当再次处理该消息时,它永远不会出现。我正在使用交易,当我抛出异常时,更改是否有可能被回滚。我也尝试在抑制的事务中写入标题,但没有奏效。
有什么方法可以更新标头,同时仍然让异常冒泡到 NSB。