2016-05-03 4 views
2

Ich benutze MassTransit 3.2.4 und ich versuche, einige Headerinformationen für meine veröffentlichten Nachrichten hinzuzufügen, aber der Code zum Setzen der Kopfzeile scheint nie zu laufen. Ich bin mir nicht sicher, warum das nicht funktioniert.MassTransit: Hinzufügen von Überschriften zu veröffentlichen Pipeline

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") 
     )); 
    }); 
}); 

Auf dem Verbraucher Ende ich den Header zu lesen bin versucht

public Task Consume(ConsumeContext<IActionHappened> context) 
{ 
    var headerValue = context.Headers.Get("HeaderKey", "Default Value"); 
} 

Muß ich sonst einen Abfangjäger oder etwas hinzufügen, um Header-Informationen einstellen?

Antwort

2

Nach viel Raten erraten. Just hatte ConfigurePublish an der falschen Stelle

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"); 
    })); 
} 
+0

Wenn Sie die IBus zu veröffentlichen verwenden, ist dies korrekt. Eine Veröffentlichung innerhalb des Receive-Endpoint-Consumers hätte funktionieren müssen, wenn sie innerhalb des Empfangsendpunkts konfiguriert wurde. –