Служба Windows работает, но журналы событий не работают - PullRequest
1 голос
/ 24 января 2009

У меня есть служба Windows, которая прослушивает сообщения из очереди, но сообщения не читаются из очереди. Я создал журнал событий для проверки журналов во время запуска и завершения работы службы, но журналы не записываются. Я не хочу отлаживать службу, поскольку это болезненный процесс. Есть способ решить эту проблему. Сообщения должны быть прочитаны службой и записаны в базу данных.

Ответы [ 3 ]

3 голосов
/ 24 января 2009

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

Установка разрешений в журнале событий для учетных записей, не относящихся к администратору, может быть немного черным занятием, потому что вам нужно настроить собственные дескрипторы безопасности с использованием SDDL и т. Д. Однако есть очень удобная статья в базе знаний MS о том, как это сделать программно:

Как программно настроить безопасность журнала событий с помощью .Net Framework

Я использую это все время сейчас, и это так просто, как:

int mask = EventLogSecurity.CustomSD_ALL_ACCESS;

string logName = "Application";
string domain = "MyMachineOrDomainName";
string account = "UserAccount";

EventLogSecurity.AddUserToEventLogCustomSD(logName, domain, account, mask);
0 голосов
/ 24 января 2009

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

0 голосов
/ 24 января 2009

По моему опыту, наиболее распространенная проблема при записи в журналы событий заключается в том, что у пользователя недостаточно прав для записи в журнал событий. Можете ли вы проверить идентичность, под которой работает служба Windows, и убедиться, что у нее есть разрешение на запись в созданный вами журнал событий?

И, можете ли вы проверить журнал событий, чтобы увидеть, регистрируются ли какие-либо ошибки при попытках записи в него?

...