Очень простая обработка ошибок с NServiceBus - PullRequest
0 голосов
/ 30 апреля 2010

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

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

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

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

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

Исключение:

Просматривая логи logernet NServiceBus, я нахожу исключение, и получается, что мой таможенный класс "пользователи" не помечен как Сериализуемый .

Хорошо, как можно "выбросить" или "обработать" такую ​​ошибку?

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

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

1 Ответ

0 голосов
/ 04 мая 2010

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

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

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