#biztalk #maps #exception
#biztalk #Карты #исключение
Вопрос:
У меня есть карта biztalk (2006 R2), которая использует класс для обеспечения некоторой пользовательской логики, которую мы не смогли аккуратно реализовать с помощью существующих функтоидов.
Когда генерируется исключение из одного из методов этого класса, детали исключения, к сожалению, теряются (по крайней мере, насколько я могу видеть), форма преобразования просто генерирует исключение, указывающее 'Function 'ScriptNS-:DoFoo()' has failed'
С тех пор я пришел к выводу, что использование скриптовых функтоидов в map — это путь к катастрофе, но это уже другое обсуждение. Мой вопрос в том, существует ли механизм, позволяющий деталям исключения передавать родительскую оркестровку?
Комментарии:
1. Я не могу вспомнить контекст для этого вопроса, поэтому я не знаю, решил ли я, как получить подробную информацию об исключении, или просто исправил конкретное исключение. Но я подумал, что добавлю это, если это поможет кому-то еще, я знаю, что в biztalk многие исключения, создаваемые из компонентов оркестровки, «обернуты» как InnerException фактического сообщения об исключении, которое вы получаете..
Ответ №1:
Попробуйте использовать ‘System.Диагностика.Трассировка класса и выходных данных внутри метода, связанных с его ходом. Начните с вывода входных параметров, поскольку они могут отличаться от ожидаемых вашим методом.
Упрощенный пример:
System.Diagnostics.Trace.WriteLine("HelperClass XX - Method YY - This was passed from the map : " inputParamOne);
Использование четкого стандарта именования упрощает фильтрацию в бесплатном инструменте DebugView, особенно когда на компьютере запущено больше, чем ваш материал. Я часто оставляю эту трассировку, поскольку в дальнейшем она часто оказывается бесценной. Служебные данные, если ни один прослушиватель не подключен, обычно можно игнорировать.
Если карта развернута и запущена на компьютере разработки BizTalk, вы можете выполнить отладку, выполнив следующие шаги:
- Установите точку останова в методе
- Выберите ‘Debug — Присоединить к процессу’
- Присоединить к процессу HostInstance (BTSNTSvc.exe если 32-разрядный), обрабатывающий ваш соответствующий порт или оркестровку, запускающую карту.