Это известная проблема в .Net - Application_Error никогда не запускается для веб-службы. Не уверен, есть ли какая-то причина, это было бы разработано, но это просто не работает.
Джефф Этвуд написал об этом сообщение (и продолжение ) об этом несколько лет назад со следующими идеями:
- Поместите блок try-catch вокруг каждого метода веб-службы
- Использовать шаблон оформления фасада и включать try-catch в родительские объекты
- Написать собственное расширение SOAP или HTTPModule
Единственный, о котором я забочусь, - это первый, хотя это кажется большой работой.