Отключить пользовательские ошибки только для веб-службы - PullRequest
5 голосов
/ 09 июня 2009

Мое веб-приложение ASP.NET 2.0 включает в себя веб-службу, которая выдает различные исключения вместе с пользовательскими сообщениями об ошибках (например, «У вас нет доступа к этому элементу» и т. Д.). Они отображаются на экране в обработчике обратного вызова ASP.NET AJAX.

Остальная часть приложения покрыта некоторыми пользовательскими страницами ошибок, которые обычно указываются в web.config.

<customErrors mode="RemoteOnly" defaultRedirect="Error.html">
      <error statusCode="404" redirect="NotFound.html" />
      <error statusCode="403" redirect="NoAccess.html" />
</customErrors>

Моя проблема в том, что если в файле web.config включены customErrors, я теряю сообщения об ошибках, возвращаемые веб-службой - вместо них они заменяются на

«Произошла ошибка при обработке запроса» - что не очень полезно ни для меня, ни для пользователей.

Есть ли способ отключить пользовательские ошибки только для веб-службы?

Ответы [ 2 ]

4 голосов
/ 09 июня 2009

Поместите ваш веб-сервис в отдельный каталог и поместите в него дополнительный файл web.config. Каждый каталог может иметь свой собственный файл web.config, содержащий настройки этого каталога (и каталогов внутри этого каталога).

3 голосов
/ 09 июня 2009

Да, элемент пользовательских ошибок

может быть определено на любом уровне в иерархии файлов приложения.

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

...