Обработка ошибок WCF-WebHttp для остальных API BizTalk 2016 - PullRequest
0 голосов
/ 11 февраля 2020

У меня есть API отдыха с методом POST, где я публикую и получаю ответ об успешном выполнении в формате JSON, который работает абсолютно нормально. Во время сбоя я получаю

Сведения об ошибке: система. Net .WebException: удаленный сервер возвратил неожиданный ответ: (400) Неверный запрос Создание не выполнено, так как имя или адрес электронной почты является недействительно

То, что я вижу в журнале приложений и порте отправки, приостанавливается. Мне нужно записать это в оркестре BizTalk, где мне нужно отправить электронное письмо, если я получу какой-либо ответ об ошибке.

Поскольку ответ об ошибке не в формате JSON, не знаю, как его можно обработать. Есть идеи?

1 Ответ

1 голос
/ 11 февраля 2020
  1. Включите маршрутизацию для неудачных сообщений на порту отправки, чтобы остановить приостановленные сообщения. Возможно, вам придется обновить фильтр в порте отправки, который подписан на ErrorReport.FailureCode Exists, чтобы исключить ваш порт отправки API, если вы хотите обрабатывать их только в оркестровке. Если у вас нет такого порта, вам, возможно, придется его создать и отправить сообщения об ошибках на адаптер NULL или аналогичный.
  2. У вашей Orchestration есть область действия с блоком исключений для перехвата системных исключений, там есть Exception = SystemException.ToString(); в форме выражения, где Exception - это переменная System.String, а SystemException - это имя объекта исключения, которое вы определили в блоке Catch.
  3. В вашем блоке catch есть logi c, который решает Какое исключение вы получили, я использую форму If с Exception.Contains("XXXX"), где XXXX - текст в исключении, или обрабатываю его так, как вы хотите.
...