NServiceBus发送不在端点出现的消息

时间:2012-05-29 16:12:01

标签: nservicebus

我在NServiceBus 3中遇到了问题。

我正在尝试将消息发送到端点。消息类型和端点在配置中配置为

<UnicastBusConfig>
    <MessageEndpointMappings>
        <add Messages="GatewayMessages.ProcessAttachmentCommand, GatewayMessages" Endpoint="Attachments"/>
    </MessageEndpointMappings>
</UnicastBusConfig>

端点在其EndpointConfig.cs中具有以下配置:

        Configure
            .With()
            .DefineEndpointName("Attachments")
            .DefaultBuilder()
            .DBSubcriptionStorage()
            .XmlSerializer()
            .FileShareDataBus(@"C:\Attachments\nservicebus\databus")
            .MsmqTransport()
            .UnicastBus()
            .LoadMessageHandlers()
            .CreateBus()
            .Start(() => Configure.Instance.ForInstallationOn<NServiceBus.Installation.Environments.Windows>().Install());

我还有一个IMutateTransportMessages类配置了

        Configure.Instance.Configurer.ConfigureComponent<TransportMessageCompressionMutator>(DependencyLifecycle.InstancePerCall);

我遇到的问题是当使用ProcessAttachmentCommand调用Bus.Send时,端点没有收到任何内容。在端点停止后,我甚至没有看到端点队列中出现任何消​​息。

MutateOutgoing的{​​{1}}方法中使用断点我可以看到外发消息,所以看起来对TransportMessageCompressionMutator的调用是正常的,但似乎不是去终点。

除了我所包含的可能影响邮件传递的配置之外,还有其他地方吗? 在消息级别是否有任何方法可以查看他们被定向的位置?

我的NServiceBus主机没有记录任何错误,就像消息正在消失一样。这是最令人困惑的!

1 个答案:

答案 0 :(得分:3)

原来这是由MessageEndpointMappings更改引起的错误。我在我的问题中发布的版本实际上并不是正在使用的版本。这是实际版本:

<UnicastBusConfig>
    <MessageEndpointMappings>
        <add Messages="GatewayMessages.ProcessAttachmentCommand, GatewayMessages" Endpoint="Attachments"/>
        <add Messages="GatewayMessages" Endpoint="Services.Saga"/>
    </MessageEndpointMappings>
</UnicastBusConfig>

第二个MessageEndpointMappings已经进入,NSB正在使用该配置来确定GatewayMessages程序集中所有消息类的目标。

啊,人为错误!