【问题标题】:MassTransit: Adding Headers to Publish PipelineMassTransit:添加标题以发布管道
【发布时间】:2016-05-03 15:46:21
【问题描述】:

我正在使用 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");
}

是否需要添加拦截器或其他东西才能设置标头信息?

【问题讨论】:

    标签: c# masstransit


    【解决方案1】:

    经过多次猜测后想通了。只是将 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发布,这是正确的。在接收端点中配置的情况下,接收端点消费者中的发布应该可以工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多