我正在使用WCF服務,並且我實現了IErrorHandler。在的HandleError方法,我要檢索的呼叫者的用戶名,以設置ThreadContext屬性log4net的(保存的用戶名,在SQL Server中的異常詳細信息一起)Log4Net&WCF IErrorHandler - ServiceSecurityContext.Current.WindowsIdentity.Name返回NullReferenceException
我的代碼工作良好如果我避免嘗試檢索調用者的用戶名。
這是對的HandleError方法內代碼被返回的NullReferenceException行:
string username = ServiceSecurityContext.Current.WindowsIdentity.Name;
看來,在該點處的IErrorHandler中,踢的的HandleError方法原來的來電者信息已被處置。
沒有人有任何想法,我怎麼可以檢索IErrorHandler的HandlerError方法中調用者的用戶名?
感謝您的幫助!
我無法理解您是否可以在HandleError方法之外獲取該名稱,或者它是否也失敗。另外,您確定調用該服務的系統是否具有關聯的Windows帳戶? –
嗨塞爾吉奧,謝謝你的迴應。我現在只是看到了這個信息,直到星期一我纔會回來工作。我很確定我能夠在ProvideFault方法中檢索用戶名,而不是HandleError方法。我必須在星期一回到你身邊。 – Craig