Обработка ошибок в онлайн-шаблоне WCF Rest 4.0 - PullRequest
0 голосов
/ 24 марта 2011

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

Я просмотрел некоторые статьи, касающиеся webprotocolexception, но я думаю, что онлайн-шаблон WCF Rest и стартовый набор или нет. Является ли стартовый комплект дополнением к шаблону?

спасибо за ваше время.

Ответы [ 2 ]

0 голосов
/ 30 марта 2011

Обработка исключений в RESTful WCF Services - сложная задача. Проблемы десериализации являются худшими, так как не вызывается пользовательский код. Фреймворк обрабатывает Исключение и просто возвращает ошибку вызывающей стороне. Есть способ увидеть эти ошибки, хотя. Вы должны настроить трассировку для WCF (через Web.config). Вот ссылка, описывающая процесс, а также где найти средство просмотра трассировки на вашем компьютере:

Средство просмотра служебных трасс (SvcTraceViewer.exe)

К сожалению, нет способа настроить это поведение. Однако для других исключений вы можете реализовать пользовательскую HttpBehavior (или HttpBehavior2, если вы используете REST Starter Kit) с пользовательской реализацией IErrorHandler для обработки исключений.

0 голосов
/ 24 марта 2011

Ошибка 400 означает неверный запрос => он получен на уровне WCF и даже не достигает метода. Поэтому вам нужно посмотреть на запрос, и если вы передаете JSON, скорее всего, он в неправильном формате.

У меня был личный проект, который я реализовал в WCF REST, и мне пришлось бороться с этой ошибкой, которая была довольно неприятной. Кроме того, обработка ошибок на сервере и возвращение кодов ошибок клиенту ужасна, поскольку вы не можете вернуть текстовое содержимое, и все, что у меня есть, - это код ошибки HTTP и описание ошибки (первая строка в ответе HTTP). Я никогда больше не буду использовать WCF REST, поскольку это реализация в бодходе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...