我有一个WCF REST项目,我希望捕获WCF框架抛出的错误并以我的方式显示它们(JSON,即)。
例如,如果我在调用中期待一个int参数并且我得到一个字符串,那么框架会显示一个带有“请求错误”的页面和一些跟踪信息......我只想获得异常并以我的JSON格式显示它作为对用户的响应。
只是为了让它更清楚 - 我不是要在代码中捕获异常,而是在代码之外发生的异常。 WCF会自行生成的例外情况,例如(当我将字符串传递给int字段时)
服务器在处理请求时遇到错误。请参阅服务帮助页面以构建对服务的有效请求。异常消息是“输入字符串格式不正确”。请参阅服务器日志以获取更多详异常堆栈跟踪是:...
任何想法如何做到这一点?
非常感谢提前!
答案 0 :(得分:1)
您需要使用FaultContracts来生成自己的自定义错误。花一点时间来设置但是一旦你拥有它,它就会产生奇迹。关于它的好处是FaultContract是完全可序列化的。
[OperationContract]
[FaultContract(typeof(CustomFault))]
string WillThrowArgumentException();
这是让它发挥作用的一个非常好的解释 http://blog.ngommans.ca/index.php?/archives/33-Handling-custom-errors-in-WCF.html
答案 1 :(得分:0)
听起来您正在寻求在WCF服务中实现全局错误处理,因此您可以捕获未处理的异常(代码中的意外错误或控件之外的错误)。如果我的理解是正确的,您需要查看IErrorHandler Interface。
有很多关于如何强制IErrorHandler的博客文章和文章。这是一个涵盖SOAP和REST的文章:WCF Exception Handling with IErrorHandler。