【问题标题】:WCF log details but hide these details to web appWCF 日志详细信息,但将这些详细信息隐藏到 Web 应用程序
【发布时间】:2014-02-04 08:24:29
【问题描述】:

我在一个 IIS 应用程序中托管了一个 Web 应用程序和 WCF 服务。

当 WCF 级别发生错误时,我想记录详细信息,但我想向 Web 客户端/用户隐藏异常消息。

有几个问题:

  • 当让 IncludeExceptionDetails 为真时异常详细信息 可以记录消息,但也可以流向 UI(记录后我把 将其向上冒泡的 throw 语句)
  • 当有 IncludeExceptionDetails 为 false 异常消息不是 足够详细以记录(但流向 UI 并带有掩码错误 消息,隐藏一些细节)。

我是否应该将 IncludeExceptionDetails 设置为 true,使用 try catch 记录异常详细信息并使用一般屏蔽异常重新抛出?

【问题讨论】:

    标签: c# wcf exception-handling


    【解决方案1】:

    为什么不在服务器端记录它们?在客户端捕获异常的想法是由客户端以适当的方式处理它们,告诉您的客户端到底是什么错误(参数、身份验证、请求长度等)。然后客户决定如何处理异常。在您的情况下,您应该向客户端屏蔽异常,因此在您的服务中设置 IncludeExceptionDetails=false 并在服务器端记录您的异常。

    最佳做法是通过在您的服务中实现IErrorHandler 接口来做到这一点。在那里,您可以提供您想要的任何日志逻辑(文件、数据库、电子邮件等)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-02
      • 1970-01-01
      • 2014-11-17
      • 2013-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多