代码之家  ›  专栏  ›  技术社区  ›  Eric

关于WCF中记录错误的问题

  •  0
  • Eric  · 技术社区  · 14 年前

    我实现了一个类,该类实现了IErrorHandler接口来记录WCF错误。我想做的一件事是记录发生异常时连接到我的服务的用户的身份。我的所有日志记录都发生在IErrorHandler接口的HandleError()方法中,但由于HandleError()可能没有当前的操作上下文,我无法获取SecurityContext。首要身份。我已经想出了以下代码来捕获HandleError方法中可能不可用的东西,但我不确定这在所有情况下都能起作用。

    public class MyErrorHandler : IErrorHandler
    {
       private IIdentity identity;
    
       public bool HandleError(Exception error)
       {
           // Do something with identity          
    
           return false;
       }
    
       public void ProvideFault(Exception error, MessageVersion version, ref Message fault)
       {
           this.identity = Operation.Current.SecurityContext.PrimaryIdentity;
       }
    }
    

    上面的代码似乎有效,但有什么问题吗?

    谢谢

    1 回复  |  直到 14 年前
        1
  •  1
  •   Eric    14 年前

    出于某种原因,我认为每次出现异常时都会创建该类。在任何情况下,我都可以通过使用Exception对象的Dictionary属性来存储我想与我的异常一起记录的自定义数据来解决我的问题。