Проблема в доступе / записи в EventLog - PullRequest
4 голосов
/ 11 августа 2009

Я работаю со старым кодом (и, честно говоря, я не знаю половину того, что он делает), пытаясь перенести его на IIS7.

Одна из проблем, которые я вижу, заключается в том, что я получаю эту ошибку:

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

Если я захожу вручную в HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ EventLog \ Security и устанавливаю разрешение этого ключа (Безопасность), чтобы «Все» имели полный доступ, это не вызывает проблем. Но очевидно, что это не оптимальное решение.

Кто-нибудь знает лучший способ удалить это исключение?

Ответы [ 2 ]

4 голосов
/ 11 августа 2009

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

С этого момента вы сможете войти под этим именем источника. (по крайней мере, это мое наблюдение.) Это просто создание неизвестного источника, который вы не можете сделать из-под ASP.NET, вход в существующий источник не должен быть проблемой.

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

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

1 голос
/ 11 августа 2009

С это нить:

Метод EventLog.CreateEventSource () попытки поиска источников событий в все журналы событий, а не только журнал событий для которого вы хотите создать источник. Есть два решения этот. Первый, самый простой и самый небезопасно, просто дать чтение / запись доступ ко всем журналам событий для Учетная запись ASP.NET.

Код и другие решения также предоставляются.

...