У меня есть проблема в NServiceBus 3.NServiceBus отправлять сообщения не появляются в конечной точке
Я пытаюсь отправить сообщения в конечную точку. Тип сообщения и конечная точка настраивается в конфигурации, как
<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);
Проблема, которую я получаю при вызове Bus.Send с помощью ProcessAttachmentCommand, не получает ничего. Когда конечная точка остановлена, я даже не вижу сообщений, появляющихся в очереди конечных точек.
С точки останова в MutateOutgoing
способе TransportMessageCompressionMutator
я могу видеть исходящее сообщение, поэтому он выглядит как вызов Bus.Send
в порядке, но это, похоже, не собирается в конечную точку.
Есть ли где-нибудь еще, кроме конфигурации, которую я включил, которая может повлиять на доставку сообщений? И есть ли способ на уровне сообщений, чтобы увидеть, куда они направлены?
Мое устройство NServiceBus не регистрирует никаких ошибок, это похоже на то, что сообщения просто исчезают. Это самое запутанное!
Является ли attatchments q транзакционным? Оказывается ли что-то в очереди сообщений msmq? Включите ведение журнала на q, чтобы узнать, есть ли сообщения, обработанные из этого q. –
@ AndreasÖhlund Я считаю, что q является транзакционным. Очередь создается NServiceBus автоматически - NSB создает транзакционные очереди по умолчанию? Я не вижу сообщений в очереди с мертвой буквой. С помощью журналирования я вижу другие типы сообщений, идущие в очереди, но сообщение ProcessAttachmentCommand не достигает очереди вложений. –
Да NSB создает транзакцию. Это работает, если вы отключите свой мутатор? –