Источник не найден, но некоторые или все журналы событий не могут быть найдены

Я получаю следующее исключение. Я дал полный контроль над учетной записью Asp.net в журналах событий в редакторе реестра.

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

System.Diagnostics.EventLog.FindSourceRegistration(String source,  String machineName, Boolean readOnly, Boolean wantToCreate) +664
System.Diagnostics.EventLog.SourceExists(String source, String machineName, Boolean wantToCreate) +109
System.Diagnostics.EventLog.SourceExists(String source) +14 Microsoft.ApplicationBlocks.ExceptionManagement.DefaultPublisher.VerifyValidSource() +41

Я предполагаю, что это связано с некоторой проблемой конфигурации на сервере?

Ответ 1

EventLog.SourceExists перечисляет через подразделы HKLM\SYSTEM\CurrentControlSet\services\eventlog, чтобы увидеть, содержит ли он подраздел с указанным именем. Если учетная запись пользователя, под которой работает код, не имеет доступа для чтения к подразделу, к которому он пытается получить доступ (в вашем случае, подраздел Security), прежде чем найти целевой источник, вы увидите исключение, подобное тому, которое у вас есть описано.

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

Ответ 2

Имело то же исключение. В моем случае мне пришлось запустить Командная строка с правами администратора.

В меню "Пуск" щелкните правой кнопкой мыши "Командная строка", выберите "Запуск от имени администратора".

Ответ 3

Для меня эта ошибка возникла из-за командной строки, которая не выполнялась под правами администратора. Вам нужно щелкнуть правой кнопкой мыши по командной строке и сказать " Запуск от имени администратора".

Вам нужна роль администратора для установки или удаления службы.

Ответ 4

Запустить командную строку разработчика "Как администратор". Эта учетная запись имеет полный доступ к журналу безопасности

Ответ 5

Не работает для меня.

Я создал новое значение ключа и строки и смог заставить его работать

Key= HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Application\<Your app name>\
String EventMessageFile value=C:\Windows\Microsoft.NET\Framework\v2.0.50727\EventLogMessages.dll

Ответ 6

Для меня просто работает iisreset (запустите cmd as administrator → iisreset). Может быть, кто-то может попробовать.

Ответ 7

Если вы выполняете новую установку веб-сайта SenseNet TaskManagement в IIS (из исходного кода, а не из WebPI), вы получите это сообщение, обычно связанное с Communication SignalR. Поскольку @nicole-caliniou указывает, это связано с ключевым поиском в реестре, который терпит неудачу.

Чтобы решить эту проблему для SenseNet TaskManagement v1.1.0, сначала найдите имя раздела реестра в файле web.config. По умолчанию это "SnTaskWeb".

 <appSettings>
   <add key="LogSourceName" value="SnTaskWeb" />

Откройте редактор реестра regedit.exe и перейдите к HKLM\SYSTEM\CurrentControlSet\Services\EventLog\SnTask. Щелкните правой кнопкой мыши на SnTask и выберите New Key, и назовите ключ SnTaskWeb для конфигурации, показанной выше. Затем щелкните правой кнопкой мыши элемент SnTaskWeb и выберите New Expandable String Value. Имя должно быть EventMessageFile, а данные значения должны быть C:\Windows\Microsoft.NET\Framework\v4.0.30319\EventLogMessages.dll.

Ключевые слова: signalr, sensenet, regedit, разрешения