【问题标题】:WCF ErrorHandlerWCF 错误处理程序
【发布时间】:2008-11-05 15:49:07
【问题描述】:

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

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

我错了吗?

【问题讨论】:

    标签: .net wcf


    【解决方案1】:

    我曾经实现了一个处理程序来记录 HandleError() 中的异常并在 ProvideFault() 中进行异常到故障的转换。这对我来说很有效。

    但是,我已经停止使用 IErrorHandler,因为我发现它不会在所有异常情况下都被触发。我相信这是一个 System.Security.SecurityException 正在通过,不会被这段代码捕获。就像 WCF 对它进行了特殊处理,然后直接将其传递给客户端。这让我有点紧张,因为我开始想知道在这个所谓的包罗万象的界面中我还没有捕捉到什么。

    【讨论】:

    • 我遇到了同样的问题(SecurityException 未捕获)。你有没有找到捕捉这些异常的方法?
    【解决方案2】:

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

    您是正确的,因为 ProviderFault 方法是您控制返回给客户端的内容的地方。

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

    【讨论】:

      猜你喜欢
      • 2014-12-01
      • 2011-09-09
      • 1970-01-01
      • 1970-01-01
      • 2016-08-18
      • 2016-01-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多