Я довольно новичок в WCF в целом. Какой небольшой опыт я получаю от использования довольно простых сервисов .SVC в веб-приложениях ASP.NET.Возврат значимых исключений из проекта WCF
Я пробовал экспериментировать с использованием проекта WCF в первый раз и столкнулся с крупным шоу-пробкой.
Я уверен, что большинство из них знают, по какой-то странной причине, в веб-приложении, в котором режим CustomErrors установлен в On
<customErrors mode = “On” />
услуги (как .asmx и .svc) не вернется сведения об исключении для клиента. Вместо этого трассировка исключений и стека освобождается, и сообщение всегда читает «Произошла ошибка обработки запроса», что совсем не помогает.
Когда услуги непосредственно размещаются внутри самого веб-приложения, легко обойти это ограничение, разместив службы в выделенной папке и установив customErrors в «Off» для этой папки.
Однако я столкнулся с этой проблемой, поскольку исключения не возвращаются из служб, которые живут в отдельном проекте WCF. Дело в том, что я не знаю, как обойти это.
Вкратце: мне нужно, чтобы мои службы проекта WCF пузыряли РЕАЛЬНЫЕ исключения для клиента - или, по крайней мере, оригинальное сообщение об исключении вместо «Произошла ошибка обработки запроса».
EDIT: Я, вероятно, следует подчеркнуть, что причина, я хотел бы вернуться исключения в том, что я часто называть эти услуги со стороны клиента с помощью Ajax (JQuery), и хотел бы форматировать возвращение иначе, если это «нормальный» возврат (например, используйте зеленый текст), а затем используйте красный текст, если это ошибка. Я обрабатываю форматирование сообщения в обработчике ошибок объекта $ .ajax, который, очевидно, будет работать только при сбое службы.
Я хотел бы также отметить, что все работает отлично с CustomErrors Off:
<customErrors mode = “Off” />
Итак, я думаю, может быть, есть какое-то свойство конфигурации, которые можно установить, чтобы остановить выполнения ASP.NET от убийства моего исключения при использовании customErrors.
Here - это некоторая связанная информация, которую я нашел на этом.
Я действительно пробовал это, но все же, когда , сообщение об исключении (фактически, весь объект исключения и трассировка стека) подавляется. С все работает нормально. Это заставляет меня поверить, что каким-то образом я должен каким-то образом скрывать исключение за время выполнения ASP.NET. ;) –
MissingLinq
вам нужно поймать исключение на стороне сервера, а также восстановить свой прокси. если вам нужно, чтобы я добавил это к сообщению, которое я могу. – Nix
Я уловил исключение. Но, как я уже сказал, все, что я получаю, - это сообщение «Ошибка в обработке запроса». Не уверен, что вы подразумеваете под «регенерированием прокси» - возможно, это то, что мне не хватает ... – MissingLinq