使用来自WCF Rest服务的消息返回HttpStatus代码,即IParameterInspector AfterCall可以处理

时间:2010-10-12 10:23:21

标签: c# .net wcf .net-4.0 wcf-rest

那么,我在一些我用自定义属性修饰的服务中有很多方法。

该属性使用ApplyDispatchBehavior中的IOperationBehavior附加到方法以及来自BeforeCall的{​​{1}}和AfterCall方法,以便在之前和之后进行一些处理调用服务方法。

一切都很好,很好...... 当服务方法需要返回http状态和消息时,问题就出现了。我能找到的唯一方法就是让方法在我们的消息中传递IParameterInspector和相应的http状态。

这个问题是附加属性的WebFaultException<T>永远不会被调用。

它的长短是:

  • 有没有办法回复邮件 并设置http状态 抛出异常?
  • 如果我必须抛出AfterCall,我的属性仍然可以通过返回的消息调用吗?

1 个答案:

答案 0 :(得分:3)

在经过大量搜索后,我找到了this questionthis answer

总结一下:调用一个小方法,如:

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

...在每次返回之前,不应该是普通的200响应。