Источник не найден, но некоторые или все журналы событий не могут быть найдены
Я получаю следующее исключение. Я дал полный контроль над учетной записью 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, разрешения