【发布时间】:2012-06-06 17:16:54
【问题描述】:
我正在使用 WCF 服务并且我已经实现了 IErrorHandler。在 HandleError 方法中,我想检索调用者的用户名,以便为 Log4Net 设置 ThreadContext 属性(将用户名与SQL Server 中的异常详细信息)
如果我避免尝试检索调用者的用户名,我的代码运行良好。
这是 HandleError 方法中返回 NullReferenceException 的代码行:
string username = ServiceSecurityContext.Current.WindowsIdentity.Name;
好像在IErrorHandler的HandleError方法启动的那一刻,原来的调用者信息已经被处理掉了。
有谁知道如何在 IErrorHandler 的 HandlerError 方法中检索调用者的用户名?
感谢您的帮助!
【问题讨论】:
-
我无法理解您是否可以在 HandleError 方法之外获取名称,或者它是否也失败了。另外,您确定调用该服务的系统有关联的 windows 帐户吗?
-
您好,塞尔吉奥,感谢您的回复。我现在才看到这条消息,我要到星期一才能回来工作。我很确定我能够在 ProvideFault 方法中检索用户名,而不是在 HandleError 方法中。我必须在星期一回复你。
标签: wcf log4net handleerror ierrorhandler