WCF -如何使自定义错误

本文关键字:自定义 错误 何使 WCF | 更新日期: 2023-09-27 18:11:23

我有一个WCF REST项目,我想捕捉WCF框架抛出的错误,并以我的方式(JSON,即)显示它们。

例如,如果我在调用中期待一个int参数,而我得到一个字符串,框架将显示一个页面,其中包含"请求错误"和一些跟踪信息…我只是想得到异常,并显示在我的JSON格式作为响应用户。

只是为了使这更清楚-我不希望捕获代码中的异常,而是代码之外发生的异常。WCF将自己生成的异常,例如(当我将字符串传递到int字段时)

服务器在处理请求时遇到错误。有关构造对服务的有效请求,请参阅服务帮助页面。异常消息是"输入字符串格式不正确"。有关详细信息,请参阅服务器日志。异常堆栈跟踪如下:…

你知道怎么做吗?

提前感谢!

WCF -如何使自定义错误

您需要使用FaultContracts来生成您自己的自定义错误。需要一点时间来设置,但一旦你有了它,它会产生奇迹。它的好处是FaultContract是完全可序列化的。

[OperationContract]
[FaultContract(typeof(CustomFault))]
string WillThrowArgumentException();

这里有一个很好的解释如何让它工作。
http://blog.ngommans.ca/index.php?/archives/33-Handling-custom-errors-in-WCF.html

听起来您希望在WCF服务中实现全局错误处理,这样您就可以捕获未处理的异常(代码中未预料到的错误或超出您控制的东西)。如果我的理解是正确的,你会想看看IErrorHandler接口。

有很多关于如何实现IErrorHandler的博文和文章。下面是一个涵盖SOAP和REST的示例:使用IErrorHandler进行WCF异常处理。