2012-02-17 1 views
3

Я пытаюсь бросить HttpResponseException(HttpStatusCode.NotFound), и я получаю следующее сообщение об ошибкеWCF WebAPI HttpResponseException Выпуск

Ответное сообщение, возвращаемый свойством реагирования этого исключения должны быть немедленно возвращены клиенту. Никакой дополнительной обработки сообщения запроса не требуется.

Я удалил весь код в моем методе, и я просто бросать исключение, как этот

[WebGet] 
public MyData Get() 
{ 
    throw new HttpResponseException(HttpStatusCode.NotFound); 
} 

Если я изменю свой метод, чтобы вернуть HttpResponseMessage я могу заставить его работать правильно, однако он не решает проблему, и я не могу заставить обработчик операции аутентификации работать, не имея возможности выбросить HttpResponseException.

ответ

0

Попробуйте использовать WebFaultException для возвращения кодов HTTP статус в WCF ...

throw new WebFaultException(HttpStatusCode.NotFound); 
+0

что работал большой, но по какой-то причине, если я использую код состояния неавторизованных я все еще получаю 404? – Stuart

+0

@Stuart у вас есть какой-либо обработчик операций/сообщений, который может вызвать 404? –

+0

@AntonyScott единственный обработчик, у меня есть обработчик авторизации, который я скопировал из сообщения Haack. Он выдает только несанкционированные исключения. – Stuart