1

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

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

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

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

任何人都对如何实现这种事情有想法。我也可以有一个简单的代码来演示IErrorHandler用法吗?

4

1 回答 1

1

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

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

于 2012-06-18T08:33:53.583 回答