Я пытаюсь создать службу Windows, и мне нужно, чтобы она могла записывать в журналы событий. Я добавил компонент EventLog
в свой проект службы и установил для свойства Log
значение ccs_wscln_log
, а для свойства Source
- ccs_wscln
(то же имя, что и у службы).
Я также создал и установщик для этого проекта. Моя проблема заключается в том, что всякий раз, когда я устанавливаю службу, она создает раздел реестра ccs_wscln
в разделе
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application
когда это ДОЛЖНО быть
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\ccs_wscln_log
.
Проблема в том, что при попытке запустить сервис я получаю сообщение об ошибке
"Источник 'ccs_wscln' не зарегистрирован в журнале 'ccs_wscln_log'. (Он зарегистрирован в журнале 'Приложение'). Свойства источника и журнала должны совпадать, или вы можете установить Log в пустую строку, и это будет автоматически сопоставлено с исходным свойством '.
Я обнаружил, что если я удаляю раздел реестра ccs_wscln в папке Application, при запуске службы он запускается и генерирует запись ccs_wscln_log в EventLog. Поэтому мой вопрос: когда я устанавливаю приложение, почему оно автоматически создает запись для меня в разделе «Приложение», и как мне предотвратить это?
Я нашел другой пост в SO, в котором говорилось, что мне нужно перезагрузить компьютер, если я установил его раньше в Application, поэтому я попытался это сделать, но когда я перезагрузил решение, я даже не смог вызвать конструктор, потому что он жаловался что запись в реестре отсутствует и она все равно будет установлена в разделе «Приложение».