Я получаю следующее исключение. Я предоставил полный контроль над учетной записью 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
Я предполагаю, что это связано с некоторыми проблемами конфигурации на сервере?
Ответы:
EventLog.SourceExists
перечисляет подключи,HKLM\SYSTEM\CurrentControlSet\services\eventlog
чтобы увидеть, содержит ли он подключ с указанным именем. Если учетная запись пользователя, под которой выполняется код, не имеет доступа для чтения к подразделу, к которому он пытается получить доступ (в вашем случае,Security
подразделу) до нахождения целевого источника, вы увидите исключение, подобное тому, которое вы описали.Обычный подход к решению таких проблем - зарегистрировать источники журнала событий во время установки (под учетной записью администратора), а затем предположить, что они существуют во время выполнения, что позволяет рассматривать любое возникающее исключение как неожиданное, если целевой источник журнала событий на самом деле не существует. во время выполнения.
источник
Было такое же исключение. В моем случае мне пришлось запустить командную строку с правами администратора.
В меню «Пуск» щелкните правой кнопкой мыши командную строку и выберите «Запуск от имени администратора».
источник
Для меня эта ошибка была связана с командной строкой, которая не работала с правами администратора. Вам нужно щелкнуть правой кнопкой мыши в командной строке и сказать « Запуск от имени администратора ».
Для установки или удаления службы вам потребуется роль администратора.
источник
Запустите командную строку разработчика «От имени администратора». У этой учетной записи есть полный доступ к журналу безопасности
источник
У меня не сработало.
Я создал новый ключ и строковое значение, и мне удалось заставить его работать
источник
У меня просто работал iisreset (запускаем cmd от имени администратора -> iisreset). Может быть, кто-нибудь может попробовать.
источник
Новый источник событий должен иметь уникальное имя во всех журналах, включая безопасность (для чтения которого требуются права администратора).
Таким образом, вашему приложению потребуются права администратора для создания источника. Но это, наверное, перебор.
Я написал этот сценарий PowerShell для произвольного создания источника событий. Сохраните его как
*.ps1
и запустите с любой привилегией, и он повысит себя.источник
Недавно я столкнулся с ошибкой, и ни одно из решений не помогло мне. Что разрешило ошибку для меня, так это добавление пользователя пула приложений в группу опытных пользователей в управлении компьютером. Я не мог использовать группу администраторов из-за политики компании.
источник
Если вы выполняете новую установку веб-сайта SenseNet TaskManagement в IIS (из исходного кода, а не из WebPI), вы получите это сообщение, обычно связанное с коммуникацией SignalR. Так как указывает @ nicole-caliniou, это происходит из-за сбоя ключевого поиска в реестре.
Чтобы решить эту проблему для SenseNet TaskManagement v1.1.0, сначала найдите имя раздела реестра в файле web.config. По умолчанию это «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, разрешения
источник
Если вы просто хотите понюхать, существует ли источник на локальном компьютере, но у вас нет возможности получить для этого разрешение, вы можете просмотреть его в следующем примере (VB).
Это обходит ошибку безопасности. Вы можете аналогичным образом изменить эту функцию, чтобы она возвращала имя журнала для источника.
источник