Возвращение кодов HttpStatus с сообщением от службы WCF Rest, которую может обработать IParameterInspector AfterCall - PullRequest
2 голосов
/ 12 октября 2010

Итак, у меня есть несколько методов в паре сервисов, которые я украсил пользовательским атрибутом.

Этот атрибут использует ApplyDispatchBehavior из IOperationBehavior для присоединения к методу и методы BeforeCall и AfterCall из IParameterInspector для некоторой обработки до и после вызова сервисного метода.

Все хорошо, хорошо было хорошо ... Проблема возникает, когда метод services должен вернуть статус http вместе с сообщением. Единственный способ, который я смог найти, - это метод, передающий WebFaultException<T> передачу нашего сообщения и соответствующий статус http.

Проблема в том, что прикрепленный атрибут AfterCall никогда не вызывается.

Длинная и короткая его длина:

  • Есть ли способ вернуть сообщение и установка статуса http без бросить исключение?
  • Если мне нужно выбросить WebFaultException<T>, может ли мой атрибут по-прежнему вызываться с возвращенным сообщением?

1 Ответ

3 голосов
/ 15 октября 2010

Хорошо, после долгих поисков, я нашел этот вопрос и этот ответ

Итак, подведем итог: вызов небольшого метода вроде:

public void SetResponseHttpStatus(HttpStatusCode statusCode)
{
    var context = WebOperationContext.Current;
    context.OutgoingResponse.StatusCode = statusCode;
}

... перед каждым возвратом, который не является простым ответом 200, должен сделать это.

...