У меня есть веб-приложение asp.net, которое содержит несколько служб WCF. Создавая виртуальный каталог, я делаю эти службы доступными в IIS. В целях ведения журнала я использую библиотеку Enterprise, чтобы помещать исключения в журнал событий Windows. Мой метод Application_Start в Global.asax.cs выглядит так:
try
{
// EnterpriseLibrary bootstrap
IConfigurationSource configurationSource = ConfigurationSourceFactory.Create();
LogWriterFactory logWriterFactory = new LogWriterFactory(configurationSource);
Logger.SetLogWriter(logWriterFactory.Create(), false);
ExceptionPolicyFactory factory = new ExceptionPolicyFactory(configurationSource);
var exManager = factory.CreateManager();
ExceptionPolicy.SetExceptionManager(exManager);
}
catch (Exception exc)
{
EventLog.WriteEntry(
"Server Logger Service",
"An error occured while initializing EnterpriseLibrary \n" + exc.ToString(),
EventLogEntryType.Error);
}
Ничего особенного, всегда используйте этот код, и все работает нормально, но в последнее время я начал неоднократно сталкиваться со следующей проблемой - всякий раз, когда методы службы wcf выдают исключение, он не регистрируется должным образом. Вместо этого я получаю
'System.InvalidOperationException: 'Must set an ExceptionManager in the
ExceptionPolicy class using the SetExceptionManager method.''
Похоже, инициализация ExceptionManager была полностью проигнорирована.
Что я пробовал:
- Перезапуск IIS.
- Удаление и воссоздание виртуальной страницы веб-приложения.
По-прежнему не действует.
Буду признателен за любые предложения.
Спасибо.