WCF ErrorHandler

时间:2008-11-05 15:49:08

标签: .net wcf

我已经阅读了几篇关于构建自定义ErrorHandler的文档(通过继承IErrorHandler)。不幸的是,我对如何做到有几点怀疑。

问题是我并不完全理解IErorrHandler的两种方法的含义(即ProvideFault和HandleError)。 对我来说,HandleError用于处理异步逻辑(例如登录)。但是,在这种情况下,为什么这个方法返回一个布尔值? 我还认为可以使用另一种方法来确定错误是应该传播到客户端还是传播给其他人。

我错了吗?

2 个答案:

答案 0 :(得分:5)

我曾在一个点实现了一个处理程序,用于在HandleError()中记录异常,并在ProvideFault()中执行异常到故障的转换。这对我来说相当不错。

但是我已经停止使用IErrorHandler,因为我发现它不会被所有异常触发。我相信这是一个不会被这段代码捕获的System.Security.SecurityException。这就像WCF特别设置它并直接传递给客户端。这让我有些紧张,因为我开始想知道我还没有抓住这个所谓的全能接口。

答案 1 :(得分:2)

基于MSDN documentation,布尔值是返回执行所需行为的成功或失败。

你是正确的,因为ProviderFault方法是你控制返回给客户端的东西的地方。

我强烈建议您阅读链接的MSDN文档,它提供了一些很好的见解。