我有很少的消息处理程序(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
答案 0 :(得分:0)
感谢Alexey,Yannick和John的帮助。
提到这个问题的答案:
根据MessageEndpointMappings中的映射发送消息。 本节对收到邮件的方式没有任何作用。 消息在EndpointConfig.cs中设置的端点处接收(或 在与项目名称空间相同的队列中。)