Не удается поймать исключение внутри службы AIF

Я создал службу AIF в динамике AX 2012, когда я тестировал ее, вызвав метод точки входа из задания, она работала нормально, но когда она развернута, и вызовы поступают из пользовательского интерфейса мыла, она падает внутри с ошибкой: «Необработанный выход».

Во время отладки я обнаружил, что необработанное исключение вызывается внутри моего предложения catch моего оператора try catch.

Он попадает внутрь улова, потому что метод, который я вызываю внутри предложения try, выдает ошибку.

Итак, кто-нибудь знает, почему я могу поймать выброшенную ошибку, когда я запускаю код на клиенте с помощью задания, но не могу поймать ее, пока он работает в CIL на сервере, а служба вызывается из SoapUi?


person Dimitry F.    schedule 24.07.2013    source источник


Ответы (1)


Решено,

AIF имеет одну большую транзакцию где-то глубоко в коде ядра и собственную попытку перехвата.

Поэтому, когда вы выдаете ошибку внутри службы AIF, внешняя транзакция прерывается и переходит прямо к предложению catch AIF, пропуская все остальные.

Вот почему я не мог его поймать. Решение может состоять в том, чтобы зафиксировать транзакцию AIF, запустить свой код и перед возвратом начать новую транзакцию.

person Dimitry F.    schedule 25.07.2013