Почему метод global.asax Application_Error не использует исключения, предоставленные службой ASMX?

И как это исправить. Я хотел бы зарегистрировать каждое исключенное исключение для целей обслуживания.

    Это известная проблема в .Net – Application_Error никогда не срабатывает для веб-службы. Не уверен, есть ли какая-то причина, по дизайну, но это просто не работает.

    Несколько лет назад у Джеффа Этвуда был пост (и последующий ), со следующими идеями:

    • Поместите блок try-catch вокруг каждого метода веб-службы
    • Используйте шаблон оформления фасада и включите try-catch в родительских объектах
    • Напишите пользовательское расширение SOAP или HTTPModule

    Единственное, на что я забочусь, это первый, хотя это кажется большой работой.

    Лучше: событие HttpApplication.Error :

    Заметка:

    Если ваше веб-приложение содержит веб-службы XML, вы не можете использовать событие «Ошибка» для глобальной обработки исключений этих служб. Обработчик HTTP для веб-служб XML потребляет любое исключение, которое происходит в веб-службе XML, и преобразует его в SOAP-ошибку до вызывания Error. Чтобы обрабатывать исключения веб-службы XML, создайте расширение SOAP для обработки исключений веб-службы в настраиваемом глобальном обработчике исключений. Дополнительные сведения см. В разделе « Обработка и удаление исключений в веб-службах XML» .

    Для тех, кто ищет слово Microsoft по этой теме, см. Здесь: « Обработка исключений и отбрасывание исключений в веб-службах XML ».

    Это соответствующий раздел:

    Веб-приложение может состоять из нескольких веб-служб XML, однако событие Application_Error в файле Global.asax не может использоваться для обработки глобальных исключений. Веб-службы HttpHandler для XML потребляют любое исключение, которое происходит во время выполнения веб-службы XML, и превращает его в ошибку SOAP до вызова события Application_Error.

    Application_error по умолчанию не работает на iis 7.

    Interesting Posts

    Режим Windows XP с двумя мониторами – приложения не отображаются правильно

    Как я могу сделать изображение с белым фоном и сделать его прозрачным

    Makefile (Генерация автозависимости)

    Почему возвращаемое значение String.addingPercentEncoding () необязательно?

    Airlink101 AP431W точка доступа – только перемычка первого MAC

    Как обрезать ведущие и завершающие пробелы?

    Тестирование производительности Java

    Как переименовать файлы в пакете с помощью счетчика?

    Как использовать sudo с псевдонимом в zsh?

    Какова цель выражения «new String (…)» в Java?

    Команда «Открыть в PuTTY» WinSCP: Могу ли я скопировать файлы из Linux обратно в Windows с терминала в открывшемся экземпляре PuTTY?

    Добавление элементов в массив Swift для нескольких streamов, вызывающих проблемы (поскольку массивы не являются streamобезопасными) – как мне обойти это?

    Предупреждение об ошибке «C-style for Statement устарел» в Swift 3

    Как выводить в CLI во время выполнения модульных тестов PHP?

    Обратный вызов GATT не регистрируется

    Давайте будем гением компьютера.