2

我在 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在 I 的方法中有一个断点,TransportMessageCompressionMutator我可以看到传出消息,所以看起来调用Bus.Send是可以的,但它似乎没有到达端点。

除了我所包含的配置之外,还有其他可能影响消息传递的地方吗?有什么方法可以在消息级别查看它们被引导到哪里?

我的 NServiceBus 主机没有记录任何错误,就像消息正在消失一样。最混乱的!

4

1 回答 1

3

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

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

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

啊,人为错误!

于 2012-05-30T15:51:41.007 回答