我一直在尝试使用故障消费者来处理附加信息,但故障消费者的上下文似乎没有任何 MT-* 标头,当我手动从错误中获取消息时,我可以在 RabbitMq 管理工具中看到这些标头在那里排队。 这是我正在使用的代码
故障消费者:
public async Task Consume(ConsumeContext<Fault<TestDto>> context)
{
try
{
var producingService = context.Message.Host.ProcessName;
var consumerName = context.Headers.Get<string>("MT-Fault-ConsumerType", "Unknown");
}
}
消费者:
public async Task Consume(ConsumeContext<TestDto> context)
{
throw new Exception("Test");
}
我能看到的唯一标头是 MT-Fault-RetryCount(如果我启用重试)。我期望看到所有 MT-* 标头,例如 MT-Fault-Message 等。在大多数情况下,我可以从 context.Message.Exceptions 中获取所有故障详细信息,但希望有一种方法可以获取消费者名称。是否有另一种方法来获取消费者名称,或者它应该出现在标题中,而我可能做错了什么?
仅当消息移至 _error 队列时才会添加这些标头。它们不会添加到消费者管道生成的
Fault<T>
中。