Мы используем NServiceBus 5.2.14, размещенные внутри .Net 4.6.1 служб Windows. Мы добавили NServiceBus аудита наших услуг через AuditConfig:NServiceBus - Saga Auditing - исключение из обработчиков
<AuditConfig QueueName="AuditService" />
Когда мы свернули аудит для обслуживания окон, содержащее наши Саги, мы заметили некоторые новые подписки, добавленные к нашей подписке Sql таблице. Как это:
SubscriberEndpoint MessageType
[email protected] MyAssembly.MessageTypeA,1.0.147.0
[email protected] MyAssembly.MessageTypeA,1.0.147.0
кажется, что после включения аудита на службе Saga, сервис, который издательское событие (что сага подписавшись), теперь получает рекурсивную подписку на себя.
Когда сообщение обрабатывается, копия успешно помещается в очередь аудита.
Однако, проблема, которую я имею, что я также получить копию сообщения проталкивается в ServiceThatIsPublishingEventTypeA.Error очереди и исключения поднятого в моем журнале.
Исключение:
System.InvalidOperationException: No handlers could be found for message type: MyAssembly.MessageTypeA
at NServiceBus.LoadHandlersBehavior.Invoke(IncomingContext context, Action next) in C:\BuildAgent\work\3206e2123f54fce4\src\NServiceBus.Core\Unicast\Behaviors\LoadHandlersBehavior.cs:line 29
at NServiceBus.BehaviorChain`1.InvokeNext(T context) in C:\BuildAgent\work\3206e2123f54fce4\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line 107
at NServiceBus.BehaviorChain`1.<>c__DisplayClass4_0.<InvokeNext>b__0() in C:\BuildAgent\work\3206e2123f54fce4\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line 94
Это имеет смысл, поскольку нет обработчиков для MyAssembly.MessageTypeA события в ServiceThatIsPublishingEventTypeA обслуживания (это просто публикует эти события), но аудит добавил эту подписку ,
Так что мой вопрос: Правильно ли это рекурсивная подписка? каков правильный способ проверки трафика через сагу (и избежать возникновения ошибок)?
Спасибо за вашу помощь
Является ли ваша аудиторская служба конечной точкой NServiceBus? Если он настроен? Я имею в виду, какие сообщения он обрабатывает? –
Да AuditService - конечная точка NSB. Он обрабатывает все сообщения, проходящие через наши различные сервисы. Он имеет обработчик, который находится на всех наших сообщениях. –
jonho
записывает эти сообщения в наш db. – jonho