Служба журнала событий Windows, содержащая дескриптор исполняемого файла - PullRequest
1 голос
/ 22 февраля 2011

У меня есть приложение-служба, которое при запуске и завершении работы регистрирует запись журнала событий.

Я часто перестраиваю приложение, а затем исполняемый файл на главном компьютере. И вот в чем проблема: после завершения работы моей службы служба Windows Eventlog (не программа просмотра журнала событий) держит открытый дескриптор исполняемого файла, поэтому я не могу его обновить.

  • У меня есть сообщения журнала событий, встроенные в исполняемый файл, я мог бы переместить его, но затем я просто перенес проблему обновления в другой файл.

  • Я дважды проверил и правильно выполнил сопряжение :: RegisterEventSource / :: DeregisterEventSource.

Кто-нибудь сталкивался с этой проблемой?

Ответы [ 3 ]

2 голосов
/ 15 июля 2013

Я тоже столкнулся с этой проблемой, поэтому просто добавляю немного своего опыта.

У меня есть система службы Windows 2008 (я не видел этого на 2003 Server), и когда я останавливаю службу, экземпляр svchost.exe загружает исполняемый файл службы (видимый с помощью vmmap.exe или Process Hacker), не давая ему удаляется / перезаписывается во время удаления / установки. Экземпляр svchost.exe работает под управлением служб DHCP-клиента (Dhcp), TCP / IP NetBIOS Helper (lmhosts) и журнала событий Windows (EventLog).

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

Опытным путем, если я удаляю эту запись реестра до остановки службы, исполняемый файл не загружается svchost.exe и все в порядке. Если служба уже остановлена ​​и исполняемый файл загружен программой svchost.exe, перезапуск службы журнала событий (или уничтожение процесса) также освобождает исполняемый файл.

Я предполагаю, что наш сервис работает некорректно (возможно, является побочным эффектом 32-разрядного процесса в 64-разрядной ОС?) Или неправильно установлен, но пока не выявил проблему.

Обновление: похоже, эта проблема возникает только в системах HP (а не в Dell или IBM), что любопытно. Установлены специфичные для HP компоненты управления, поэтому, возможно, один из них как-то меняет поведение?

1 голос
/ 08 июня 2016

Я тоже столкнулся с этой проблемой.В моем случае служба чтения журналов nxlog.Просто остановите службу nxlog перед заменой исходного файла события.

0 голосов
/ 02 марта 2011

Я думаю, что это, вероятно, журнал событий просмотра .Закройте программу просмотра, и все будет в порядке.

...