自定义 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用法吗?

您可以查看消息检查器之前发送回复以自定义需要发送给客户端的回复

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

最新更新