Вопрос по регистрации ошибок в WCF - PullRequest
0 голосов
/ 03 августа 2010

Я реализовал класс, который реализует интерфейс IErrorHandler для регистрации ошибок WCF.Одна из вещей, которую я хотел бы сделать, - это регистрировать, кто является личностью пользователя, который подключился к моей службе, когда произошло исключение.Все мои записи происходят в методе HandleError () интерфейса IErrorHandler, но, поскольку HandleError () может не иметь текущего контекста операции, я не могу получить SecurityContext.PrimaryIdentity.Я придумал следующий код для захвата вещей, которые могут быть недоступны в методе HandleError, но я не уверен, что это будет работать во всех случаях.

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;
   }
}

Код выше, кажется, работает, но есть ли ошибки?

Спасибо!

1 Ответ

1 голос
/ 20 августа 2010

Почему-то я думал, что класс создается каждый раз, когда возникает исключение. В любом случае я смог решить свою проблему, используя свойство Dictionary объекта Exception для хранения пользовательских данных, которые я хотел записать, за моим исключением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...