自定义WCF Rest错误响应

时间:2012-05-15 12:41:18

标签: c# wcf rest wcf-rest

我已经编写了一个WCF REST API供第三方使用。我想要做的一件事是,如果出现任何问题,请将自定义错误响应返回给客户端。我不希望WCF默认错误页面显示已发生内部服务器错误或找不到方法名称。

为此,我会在必要时抛出WebFaultException<Error>。这会向客户端返回以下类型的响应:

<Error>
  <type>MissingTag</type>
  <Desc>Tag 349 is missing</Desc>
</Error>

但是,如果出现任何其他类型的错误,如序列化错误或“找不到方法”错误,或者我想检查POST,PUT和PATCH是否存在http标头内容类型,我该如何处理?我也想把WebFaultException<>扔到那里。我试着调查IErrorHandler,但无法让它发挥作用。

任何人都有关于如何实现此类事情的想法。我还可以使用简单的代码演示IErrorHandler用法吗?

1 个答案:

答案 0 :(得分:1)

您可以查看Message Inspectors BeforeSendReply以自定义需要发送给客户端的回复

如果在发出请求时未设置内容类型,您可以查看AfterReceiveRequest,您可以在其中自定义收到的请求,然后根据需要执行操作。