0
我實現了一個實現IErrorHandler接口來記錄WCF錯誤的類。我想要做的事情之一是記錄用戶的身份,而不是在發生異常時連接到我的服務。我所有的日誌記錄都發生在IErrorHandler接口的HandleError()方法中,但由於HandleError()可能沒有當前的操作上下文,因此我無法獲取SecurityContext.PrimaryIdentity。我想出了以下代碼來捕獲HandleError方法中可能無法使用的東西,但我不確定這會在所有情況下都能正常工作。關於WCF中日誌記錄錯誤的問題
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;
}
}
上面的代碼似乎工作,但是有沒有什麼問題?
謝謝!