Очень простая обработка ошибок с помощью NServiceBus

эй, ребята, вот простой сценарий

  • Настройка клиента/сервера NServiceBus.
  • «Сообщение» — это пользовательский класс, который я написал.

Клиент отправляет сообщение запроса. Сервер получает сообщение, и сервер делает это:

Bus.Reply(new UserDataResponseMessage { ID = Guid.NewGuid(), Response = users });

Тогда ничего. Клиент никогда не получает ответа.

Исключение:

Просматривая журналы log4net NServiceBus, я нахожу исключение, и оказывается, что мой пользовательский класс «пользователи» не помечен как Serializable.

Хорошо, как можно «выбрасывать» или «обрабатывать» такого рода ошибки?

NServiceBus, кажется, продвигает идею отказа от обработки ошибок, но в этом сценарии очевидно, что какой-то «бросок» сэкономил бы много времени.

Как мне обрабатывать такие исключения, где они возникают, куда они идут?


person andy    schedule 29.04.2010    source источник


Ответы (1)


Ребят, вот как я решил проблему:

По сути, как я понял, вы действительно должны «обрабатывать» ошибки в nServiceBus, просто он не предназначен для этого. Итак, подход, который я выбрал, двоякий:

  1. UnitTesting – запуск тестов. nServiceBus имеет довольно классное пространство имен Testing, где вы можете написать несколько тестов для коммуникационных частей.
  2. Интеллектуальное ведение журнала. В этом случае разделите журналы ошибок и другие журналы. Поскольку nServiceBus использует log4net, довольно легко получить несколько интересных вариантов ведения журнала с помощью простой конфигурации.
person andy    schedule 04.05.2010
comment
Возможно, вы не хотите делиться некоторыми настройками конфигурации или модульными тестами? - person ssmith; 16.12.2010