Не удается поймать исключение внутри службы AIF
Я создал сервис AIF в динамическом AX 2012, когда я тестировал его, вызывая метод точки входа из задания, он работал нормально, но когда он развернут, когда вызовы поступают из мыльного интерфейса пользователя, он вылетает внутри с ошибкой: "Необработанная уловка".
Во время отладки я обнаружил, что необработанное исключение выбрасывается в мое предложение catch моего оператора try catch.
Он попадает внутрь catch, потому что метод, который я вызываю в предложении try, выдает ошибку.
Так кто-нибудь знает, почему я могу поймать выданную ошибку, когда я запускаю код на клиенте, используя задание, но не могу перехватить его, когда он выполняется в CIL на сервере и служба вызывается из SoapUi?
1 ответ
Решено,
У AIF есть одна большая транзакция где-то глубоко в коде ядра и собственный метод try.
Поэтому, когда вы выкидываете ошибку внутри службы AIF, она прерывает внешнюю транзакцию и переходит к предложению перехвата AIF, пропуская все остальные.
Вот почему я не мог поймать это. Решением может быть принятие транзакции AIF, выполнение вашего кода и перед возвратом начните новую транзакцию.