我在NServiceBus 3NServiceBus发送消息没有出现在终点
我试图将消息发送到端点有问题。消息类型和端点在配置配置为
<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时。端点停止后,我甚至没有看到任何消息出现在端点队列中。
随着在TransportMessageCompressionMutator
我可以看到传出消息的MutateOutgoing
方法中设置断点,所以它看起来像调用Bus.Send
是确定的,但它似乎并没有将要终结点。
除了可能影响邮件传递的配置外,还有其他地方还有其他地方吗? 有没有什么方法可以在消息级别看到它们被导向的位置?
我NServiceBus主机不记录任何错误,它像消息只消失。这是最令人困惑的!
是attatchments q交易? msmq死信队列中是否有任何结果?打开q上的日志记录,查看是否有消息正在从q处理。 –
@AndreasÖhlund我相信q是交易性的。队列是由NServiceBus自动创建的 - 默认情况下,NSB是否创建事务队列? 我在死信队列中看不到任何消息。 随着日志的发展,我可以看到其他消息类型正在队列中,但ProcessAttachmentCommand消息未到达附件队列。 –
是NSB创建它们的交易。如果你禁用了你的mutator,它会起作用吗? –