Поймать исключение EndpointNotFoundException в оркестровке Biztalk 2010 - PullRequest
0 голосов
/ 25 января 2012

Я хотел бы обработать исключение EndpointNotFoundException в моей оркестровке.

Я добавляю новый обработчик исключений

область действия синхронизирована = false

тип объекта исключения = System.ServiceModel.EndpointNotFoundException (этот тип объекта не работает)

тип объекта исключения = System.ServiceModel.CommunicationException (этот тип объекта не работает)

тип объекта исключения = System.SystemException (этот тип объекта сработал. Которого я не хочу)

Есть идеи, как отловить такие исключения в оркестровке?

1 Ответ

2 голосов
/ 25 января 2012

Это, кажется, распространенная проблема - например, здесь и здесь .Я согласен с вами, если поймаю базовый System.Exception, что тип перехваченного типа System.ServiceModel.EndpointNotFoundException с внутренним System.Net.WebException.

Хотя он не отвечает непосредственно на ваш вопрос, почему бы не пометить порт как Delivery Notification = Transmittedи затем перехватывает DeliveryFailureException ?.

Таким образом, вы отделяете свою оркестровку от определенного адаптера (WCF), и если вы меняете свой транспорт (или добавляете резервный транспорт и т. д.),обработка исключений будет по-прежнему работать.

Редактировать: Скотт Колесток упоминает хак для отлова внутренних исключений - что-то подобное может работать для исходного требования

...