Korzystamy z podejścia opisanego jako here, aby rejestrować błędy naszych usług internetowych w Elmah. A to faktycznie działa, ale niestety nazwa użytkownika jest pusta.Logowanie użytkownika z Elmah dla WCF Webservices
Zrobiliśmy kilka debugowania i stwierdziliśmy, że podczas rejestrowania błędu w ErrorHandler HttpContext.Current.User
ma prawidłowy zestaw użytkownika.
Próbowaliśmy także:
HttpContext context = HttpContext.Current;
ErrorLog.GetDefault(context).Log(new Error(pError, context));
i
ErrorLog.GetDefault(null).Log(new Error(pError));
bez powodzenia.
Jakieś pomysły, w jaki sposób możemy zrobić Elmah zalogować nazwę użytkownika?
W zdaniu, podczas rejestrowania błędu bezpośrednio w usłudze internetowej, nazwa użytkownika jest rejestrowana zgodnie z oczekiwaniami. Ale przyjęcie tego podejścia nie jest bardzo suche.
mam rację, że ustawienie Pricipal z: 'Thread.CurrentPrincipal = new GenericPrincipal (nowa GenericIdentity ("lala"), nowy ciąg [0]) "jest złym pomysłem z powodu ThreadPooling? – Thomas
Tak, nie chcesz zadzwonić z głównym wątkiem –
A jeśli ustawię go z powrotem do starego Principal po zalogowaniu błędu z elmah? – Thomas