Я довольно новичок в WCF в целом. У меня мало опыта в использовании довольно простых служб .SVC в веб-приложениях ASP.NET.
Я впервые попробовал поэкспериментировать с использованием проекта WCF и натолкнулся на крупный ограничитель шоу.
Как я уверен, большинству известно, по какой-то странной причине, в веб-приложении, в котором режим customErrors установлен на Вкл
<customErrors mode = “On” />
сервисы (как .ASMX, так и .SVC) не будут возвращать детали исключения клиенту. Вместо этого очищается исключение и трассировка стека, и в сообщении всегда указывается «Произошла ошибка при обработке запроса», что совершенно не помогает.
Когда службы размещаются непосредственно в самом веб-приложении, обойти это ограничение легко, поместив службы в отдельную папку и установив для CustomErrors значение «Выкл.» Для этой папки.
Однако я сталкиваюсь с той же проблемой, за исключением тех случаев, когда службы не возвращаются из отдельного проекта WCF. Дело в том, что я не знаю, как обойти это.
Вкратце: мне нужно, чтобы мои службы Project WCF выдавали клиенту реальные исключения - или, по крайней мере, исходное сообщение об исключении вместо «Произошла ошибка при обработке запроса».
РЕДАКТИРОВАТЬ : Я, вероятно, должен указать здесь, что причина, по которой я хотел бы возвращать исключения, заключается в том, что я часто вызываю эти сервисы со стороны клиента через Ajax (jQuery) и хотел бы отформатируйте ответное сообщение по-разному, если это «нормальный» возврат (например, используйте зеленый текст), а затем используйте красный текст, если это ошибка. Я обрабатываю форматирование сообщения в обработчике ошибок объекта $ .ajax, который, очевидно, будет работать только при сбое службы.
Я также должен отметить, что все работает нормально с customErrors Off:
<customErrors mode = “Off” />
Итак, я думаю, что, может быть, есть какое-то свойство конфигурации, которое можно настроить, чтобы среда ASP.NET не убивала мое исключение при использовании customErrors.
Здесь - некоторая связанная информация, которую я нашел по этому вопросу.