处理程序的捕获中的NServiceBus SetHeader

处理程序的捕获中的NServiceBus SetHeader,nservicebus,Nservicebus,我们在消息处理程序中使用了try-catch,我们意识到这与不处理异常的推荐最佳实践背道而驰。也就是说,我被要求识别最后一次重试,并在被抑制的事务中向另一个队列发送消息。消息的发送正在工作,但是,我正在调用message.SetHeader(也尝试了Bus.CurrentMessageContext.Headers[EsbService.FirstLevelRetriesHeader]=CurrentFirstLevelRetryAttenting.ToString();)来实现我自己对重试尝试

我们在消息处理程序中使用了try-catch,我们意识到这与不处理异常的推荐最佳实践背道而驰。也就是说,我被要求识别最后一次重试,并在被抑制的事务中向另一个队列发送消息。消息的发送正在工作,但是,我正在调用message.SetHeader(也尝试了Bus.CurrentMessageContext.Headers[EsbService.FirstLevelRetriesHeader]=CurrentFirstLevelRetryAttenting.ToString();)来实现我自己对重试尝试的跟踪。基本上是在头中写入递增的数字,并查看它何时达到特定值以触发将消息发送到另一个队列。它似乎在向它写入,但当消息再次被处理时,它永远不存在。我正在使用事务,所以在抛出异常时是否可能回滚更改。我也尝试在一个被抑制的事务中写入标题,但没有成功


是否有任何方法可以在更新标头的同时仍让异常冒泡到NSB。

您是在尝试计算第一级重试次数还是第二级重试次数,还是同时计算两者?