Источник не найден, но не удалось найти некоторые или все журналы событий. Недоступные журналы: безопасность

Я получаю ошибку:

Источник не найден, но не удалось найти некоторые или все журналы событий. Недоступные журналы: безопасность

Когда я запускаю приведенный ниже код для захвата ошибок на сервере Win 2K12 R2 IIS 8.5

EventLog elog = new EventLog();
EventLog.CreateEventSource("MyApp", "Application");
EventLog.WriteEntry(Source, swError.ToString(), EventLogEntryType.Error);

Я дал полный доступ к HKLM\SYSTEM\CurrentControlSet\services\eventlog но это не работает до сих пор. Что мне делать, чтобы это исправить?

9 ответов

Решение

Смотрите создание раздела реестра.

Эта проблема может возникать не только из-за разрешений, но также из-за отсутствия ключа источника события, потому что он не был успешно зарегистрирован (для этого нужны привилегии администратора - если вы просто откроете Visual Studio как обычно и запустите программу, как обычно, она выиграла). не хватит). Убедитесь, что ваш источник событий "MyApp" действительно зарегистрирован, т.е. он отображается в реестре в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Application,

Из MSDN EventLog.CreateEventSource ():

Чтобы создать источник событий в Windows Vista и более поздних версиях или Windows Server 2003, вы должны иметь права администратора.

Поэтому вы должны либо запустить регистрационный код источника события от имени администратора (также проверьте, существует ли ранее этот источник - см. Приведенный выше пример MSDN), либо вы можете вручную добавить ключ в реестр:

  1. создать регги HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Application\MyApp;
  2. внутри создайте строковое значение EventMessageFile и установите его значение, например, C:\Windows\Microsoft.NET\Framework\v2.0.50727\EventLogMessages.dll

Я получил эту ошибку при запуске Visual Studio. Запустив Visual Studio от имени администратора, приложение смогло получить доступ к журналам безопасности, так как тогда у него были достаточные разрешения (таким образом, предотвращая ошибку).

Я знаю, я немного опоздал на вечеринку... что часто случается, вы просто используете настройки по умолчанию в вашем пуле приложений в IIS. В утилите администрирования IIS перейдите в app pools->select pool-->advanced settings->Process Model/Identity и выберите идентификатор пользователя, который имеет права доступа. По умолчанию установлено ApplicationPoolIdentity, Если вы разработчик, скорее всего, вы администратор на своем компьютере, поэтому вы можете выбрать свою учетную запись для запуска пула приложений. На серверах развертывания пусть администраторы справятся с этим.

Всякий раз, когда вы запускаете Visual Studio, запускайте его от имени администратора. Меня устраивает.

Попробуйте дать идентификатор AppPool или сетевые службы, в зависимости от того, какой подходящий доступ вы также получите HKLM\SYSTEM\CurrentControlSet\services\eventlog\security Я получаю ту же ошибку.. это сработало для меня. Посмотрите, что ошибка также говорит о том, что недоступные журналы являются журналами безопасности.

Я также дал разрешение в eventlog \ application.

Я дал полный доступ везде.

Локально я запускаю visual studio с правами администратора и ошибка исчезла.

Если вы получили эту ошибку в планировщике задач, вы должны проверить опцию запуска с высокими привилегиями.

Используйте NetworkService в качестве значения идентификатора в дополнительных настройках пула приложений при отладке в Visual Studio. ApplicationPoolIdentity работает, если вы открываете сайт прямо из браузера (или переходите в виртуальный каталог в IIS и используете опцию "Обзор" справа).

Это также может быть связано с тем, что он не может найти необходимый файл.dll. Либо файл отсутствует в папке, либо переименован. Я столкнулся с той же проблемой и обнаружил, что.dll-файл отсутствует в моей папке bin, как-то.

Недавно я начал получать эту ошибку в своем внутреннем журнале сбоев NLog в Visual Studio 2013. Решение использует NLog v2.0.0 в течение нескольких лет. В течение последнего месяца наш основной журнал перестал работать. Чтобы это исправить, я обновил NLog до последней версии (v3.1.0) через Nuget. Исключение безопасности исчезло, и ВСЕ сообщения журнала появляются снова.

Кроме того, позже я обнаружил еще одно исключение безопасности и смог его исправить, следуя инструкциям, приведенным в этом сообщении в другой ветке.

Другие вопросы по тегам