Журналы, не идущие в CustomEventLog, созданные в WindowsService

У меня есть служба Windows, и я устанавливаю ее с помощью installutil. В установщике проекта я создаю собственный журнал событий. Но когда мой сервис запускается, все мои журналы переходят в "Приложение" вместо моего журнала пользовательских настроек. Ниже приведен код, который я добавил в установщик.

// Create Event Source and Event Log     
EventLogInstaller logInstaller = new EventLogInstaller();
logInstaller.Source = "MyServices";
logInstaller.Log = "MyService Events";

Installers.Add(logInstaller);

Кроме того, имя службы - MyService.exe.

Когда я удаляю и переустанавливаю службу, я не могу выполнить установку со следующим журналом установки;

Запуск транзакционной установки.

Начало фазы установки установки. См. Содержимое файла журнала для выполнения сборки D:\MyService\MyService\bin\Release\MyService.exe. Файл находится по адресу D:\MyService\MyService\bin\Release\MyService.InstallLog.

Возникла исключительная ситуация на этапе установки. System.ArgumentException: источник MyServices уже существует на локальном компьютере.

Фаза отката установки начинается. См. Содержимое файла журнала для выполнения сборки D:\MyService\MyService\bin\Release\MyService.exe. Файл находится по адресу D:\MyService\MyService\bin\Release\MyService.InstallLog.

Фаза отката успешно завершена.

Транзакция завершена.

И вот как я пишу запись в журнале;

EventLog.WriteEntry ("MyServices", logMessage, logType);

Может кто-нибудь, пожалуйста, помогите мне, что я делаю неправильно.

1 ответ

Решение

Когда вы добавляете новый источник журналов, вам необходимо перезапустить сервер, чтобы источник журналов был правильно найден.

Вам также нужен ваш установщик, чтобы знать, если источник журнала уже существует.

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

Другие вопросы по тегам