MassTransit:向发布管道添加标头

6
我正在使用MassTransit 3.2.4,尝试为我的发布消息添加一些头信息,但设置头的代码似乎从未运行。我不确定为什么这样做不起作用。
var bus = Bus.Factory.CreateUsingRabbitMq(config =>
{
    var host = config.Host(new Uri("rabbitmq://localhost/"), h {});
    config.ReceiveEndpoint(host, "TestPublisher", e => 
    { 
        e.ConfigurePublish(x => x.UseSendExecute(context =>
            context.Headers.Set("HeaderKey", "HeaderValue")
        ));
    });
});

在消费者端,我试图阅读页眉。
public Task Consume(ConsumeContext<IActionHappened> context)
{
    var headerValue = context.Headers.Get("HeaderKey", "Default Value");
}

我需要添加拦截器或其他内容才能设置标头信息吗?
1个回答

6
在经过多次猜测后,我终于找到了答案。只是把ConfigurePublish放错了位置。
var bus = Bus.Factory.CreateUsingRabbitMq(config => 
{
    var host = config.Host(new Uri("rabbitmq://localhost/"), h => {});
    config.ConfigurePublish(x => x.UseSendExecute(context => 
    {
        context.Headers.Set("HeaderKey", "HeaderValue");
    }));
}

如果您正在使用IBus进行发布,那么这是正确的。在接收端点消费者内部进行发布应该可以工作,在配置在接收端点内部的情况下。 - Chris Patterson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接