我已经编写了一个WCF REST API供第三方使用。我想要做的一件事是,如果出现任何问题,请将自定义错误响应返回给客户端。我不希望WCF默认错误页面显示已发生内部服务器错误或找不到方法名称。
为此,我会在必要时抛出WebFaultException<Error>
。这会向客户端返回以下类型的响应:
<Error>
<type>MissingTag</type>
<Desc>Tag 349 is missing</Desc>
</Error>
但是,如果出现任何其他类型的错误,如序列化错误或“找不到方法”错误,或者我想检查POST,PUT和PATCH是否存在http标头内容类型,我该如何处理?我也想把WebFaultException<>
扔到那里。我试着调查IErrorHandler
,但无法让它发挥作用。
任何人都有关于如何实现此类事情的想法。我还可以使用简单的代码演示IErrorHandler
用法吗?
答案 0 :(得分:1)
您可以查看Message Inspectors BeforeSendReply以自定义需要发送给客户端的回复
如果在发出请求时未设置内容类型,您可以查看AfterReceiveRequest,您可以在其中自定义收到的请求,然后根据需要执行操作。