WCF日志详细信息但隐藏这些详细信息到Web应用程序

时间:2014-02-04 08:24:29

标签: c# wcf exception-handling

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

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

有几个问题:

  • 将IncludeExceptionDetails设置为true时,将显示异常详细信息 消息可以记录,但也流向UI(记录后我把它 throw语句向上冒泡)
  • 当有 IncludeExceptionDetails为false,异常消息不是 详细到足以记录(但流入带有屏蔽错误的UI 消息,隐藏一些细节)。

我应该将IncludeExceptionDetails设置为true,使用try catch和rethrow记录异常详细信息并使用常规屏蔽异常吗?

1 个答案:

答案 0 :(得分:0)

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

最佳做法是通过在您的服务中实施IErrorHandler接口来实现此目的。在那里,您可以提供所需的任何日志逻辑(文件,数据库,电子邮件等)。