NServiceBus:如何配置不同的消息处理程序来处理来自MessageEndpointMappings中不同端点的消息

时间:2015-03-23 12:40:44

标签: rabbitmq nservicebus

我有很少的消息处理程序(IHandleMessage)处理项目中的不同消息。来自不同端点的处理程序不会使用这些消息。它们从EndpointConfig中提到的端点或名称与项目命名空间相同的端点使用。如何让处理程序根据MessageEndpointMappings部分中定义的端点集消耗消息?

例如,我有两种消息类型。项目合同中的Message1和Message 2以及项目处理程序中的两个处理程序(IHandleMessage),Message1Handler和Message2Handler。

我正在使用NServiceBus的RabbitMq传输。 我希望这些处理程序使用来自各自消息队列的消息,即来自Contracts.Message1队列的Message1Handler和来自Contracts.Message2队列的Message2Handler。

<MessageEndpointMappings>
      <add Assembly="Contracts" Type="Contracts.Message1" Endpoint="Contracts.Message1" />
      <add Assembly="Contracts" Type="Contracts.Message2" Endpoint="Contracts.Message2" />
  </MessageEndpointMappings>

Handler项目中的这些端点映射不起作用。消息不会被消耗。消息可以从Handler队列(与项目名称空间相同)或EndpointConfig.cs中提到的 EndpointName 中使用。

处理程序时MessageEndpointMappings的用途是什么?

我使用的是NServiceBus 5.2.0

1 个答案:

答案 0 :(得分:0)

感谢Alexey,Yannick和John的帮助。

提到这个问题的答案:

  

根据MessageEndpointMappings中的映射发送消息。   本节对收到邮件的方式没有任何作用。   消息在EndpointConfig.cs中设置的端点处接收(或   在与项目名称空间相同的队列中。)