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

этот скрипт сравнивает Object, Arrays и многомерный массив

function compare(a,b){
     var primitive=['string','number','boolean'];
     if(primitive.indexOf(typeof a)!==-1 && primitive.indexOf(typeof a)===primitive.indexOf(typeof b))return a===b;
     if(typeof a!==typeof b || a.length!==b.length)return false;
     for(i in a){
          if(!compare(a[i],b[i]))return false;
     }
     return true;
}

. Первая строка проверяет, является ли он примитивным типом. если он сравнивает два параметра.

, если они являются объектами. он выполняет итерацию по объекту и проверяет каждый элемент рекурсивно.

Использование:

var a=[1,2,[1,2]];
var b=[1,2,[1,2]];
var isEqual=compare(a,b);  //true
42
задан caustic 17 October 2008 в 20:21
поделиться

4 ответа

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

Jeff Atwood имел сообщение продолжение ) об этом несколько лет назад со следующими идеями:

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

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

42
ответ дан Medinoc 23 September 2019 в 14:03
поделиться

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

-4
ответ дан 23 September 2019 в 14:03
поделиться

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

Примечание:

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

16
ответ дан 26 November 2019 в 23:50
поделиться

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

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

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

13
ответ дан 26 November 2019 в 23:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: