Внутреннее исключение во время сериализации REST вызывает HTTP 401? - PullRequest
1 голос
/ 14 октября 2011

У нас есть служба REST, развернутая в рабочей среде, которая возвращает сериализованное представление XML простого объекта.

При вызове метода REST 'get' мы видим очень странную проблему, из-за которой после всего нашего пользователяКод закончен (согласно нашим собственным журналам), мы получаем 401 в браузере, который отображает объект XML.Это сбой серверной стороны во время выполнения оператора return в методе REST.

Мы думаем, что понимаем эту часть проблемы ... Объект содержит перечисление, значение которого фактически возвращается избаза данных.В этом конкретном случае нам удалось присвоить целочисленное значение целочисленному значению, которое не определено в самом перечислении (это поведение разрешено и является причиной для метода Enum.IsDefined: http://msdn.microsoft.com/en-us/library/system.enum.isdefined.aspx)

НашПредполагается, что когда код каркаса REST обрабатывает оператор return, он пытается сериализовать Enum в текстовое значение и взрывается, потому что для указанного значения не существует имени (строки).

Как ни странновместо того, чтобы получить желтый экран смерти или аналогичный, мы получаем 401 (и запрос учетных данных в браузере).

Нам было интересно, выполняет ли ASP.NET / IIS какой-либо тип Server.Transfer вв этих случаях, но, возможно, у него нет разрешений файловой системы на страницу, на которую он передается -? Мы сбиты с толку относительно того, что происходит под капотом! Нет перенаправления на стороне клиента.

Любойидеи кто-нибудь?

1 Ответ

0 голосов
/ 14 октября 2011

Код состояния HTTP 401 означает «Не авторизован». Из Википедии :

401 Несанкционированный
Аналогично 403 Запрещено, но специально для использования, когда аутентификация возможна, но не прошла или еще не была предоставлена. [2] Ответ должен включать поле заголовка WWW-Authenticate, содержащее запрос, применимый к запрашиваемому ресурсу. См. Базовая аутентификация доступа и Дайджест-аутентификация доступа.

Я бы начал смотреть на то, как настроена ваша аутентификация.

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