【发布时间】:2012-07-03 13:06:48
【问题描述】:
在我的 WCF 服务中,我实现了一个自定义编码器,它继承自 System.ServiceModel.Channels.MessageEncoder。
在那个编码器中,我获取原始消息并在我的 ReadMessage() 方法的覆盖中操作接收到的标头。
在此操作期间,有时我可能会在标头中检测到使消息无效的内容,并且我想向客户端返回一个有用的异常。
我试过了:
throw new Exception("Some useful message");
还有:
throw new FaultException("Some useful message");
它们都向客户端返回 HTTP 400,但没有响应正文。
我可以很高兴地从我的实际 Web 服务方法中抛出一个 FaultException,它会正确返回给客户端,但是在处理的后期我不再可以访问 SOAP 标头(除非有人可以告诉我否则)。
如何根据 SOAP 标头中的信息向客户端返回带有友好消息的响应 500?
【问题讨论】: