Как для перехвата необработанного исключения в роли Windows Azure (Worker)

Я пытаюсь перехватить все необработанные исключения в моей рабочей роли. Я попытался поместить блок try - catch в метод Run () (как было предложено здесь ), но безуспешно.

public override void Run()
{
  try
  {
    base.Run();
  }
  catch (Exception ex)
  {
    Trace.TraceError("Unhandled Exception: {0}", ex);    
    throw ex;
  }
}

Роль размещает службу WCF, поэтому внутри метода Run () нет другой логики. Есть ли еще одна возможность перехвата исключений на этом уровне?

Обновление 1 Чтобы прояснить проблему: роль самостоятельно размещает службу WCF (инициализирована в OnStart () ), где некоторые операции являются фоновыми. Когда вызывается служба и этот метод выдает непредвиденное исключение, мне нравится ловить это и записывать в журнал.

Решение: Очевидно, это похоже на обычное приложение C #: Просто добавьте обработчик к событию UnhandledException , как это

AppDomain.CurrentDomain.UnhandledException +=
  new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);

, внутри OnStart () роли. Я был настолько сосредоточен на Azure, что предположил, что это не сработает, что я даже не пробовал: -)

9
задан sharptooth 13 May 2013 в 09:46
поделиться