Używam IErrorHandler do obsługi wyjątków w WCF i teraz chcę rejestrować wyjątki, wraz ze śledzeniem stosu i użytkownikiem, który spowodował wyjątek.Wypisywanie wyjątków w WCF z IErrorHandler wewnątrz HandleError lub ProvideFault?
Jedynym sposobem, widzę, aby użytkownik, który spowodował wyjątek jest:
OperationContext.Current.IncomingMessageProperties.Security.ServiceSecurityContext.PrimaryIdentity
... Ale to tylko wydaje się działać wewnątrz ProvideFault , a nie wewnątrz HandleError. Czy istnieje sposób na przeniesienie użytkownika do HandleError? Chciałbym użyć HandleError zamiast ProvideFault, ponieważ jest to wywoływane w wątku tła i przeznaczone do rejestrowania błędów, prawda?
zgadzam, ale w jaki sposób można uzyskać informacje użytkownika (ServiceSecurityContext.PrimaryIdentity) od wewnątrz metody HandleError? – Dannerbo
@Dannerbo: zaktualizowałem moją odpowiedź –
W moim środowisku uzyskującym dostęp do ServiceSecurityContext.Current w HandleError() wyrzuca ObjectDisposedException z tekstem "Message is closed". – UserControl