我使用IErrorHandler在WCF中執行異常處理,現在我想記錄異常,以及堆棧跟蹤和導致異常的用戶。在HandleError或ProvideFault中使用IErrorHandler記錄WCF中的異常?
我可以看到來獲取引起異常的用戶的唯一方法是:
OperationContext.Current.IncomingMessageProperties.Security.ServiceSecurityContext.PrimaryIdentity
...但這似乎只是內部ProvideFault工作,而不是在HandleError中。有沒有辦法讓用戶進入HandleError?我想使用HandleError而不是ProvideFault,因爲它在後臺線程中調用,並且用於錯誤日誌記錄,對嗎?
我不同意,但怎麼開始從的HandleError方法內部的用戶信息(ServiceSecurityContext.PrimaryIdentity)? – Dannerbo 2010-05-19 21:20:32
@Dannerbo:更新了我的回答 – 2010-05-20 05:24:39
在我的環境中訪問HandleError()中的ServiceSecurityContext.Current時,拋出ObjectDisposedException爲「消息已關閉」文本。 – UserControl 2010-11-27 21:16:34