В классе службы я делаю почти то же самое, что и в статье
Код: Выделить всё
static EventLog _eventLog;
public CMSMetadata()
{
InitializeComponent();
_eventLog = new EventLog();
if (!EventLog.SourceExists("CMSMetadata_Processing"))
{
EventLog.CreateEventSource(new EventSourceCreationData("CMSMetadata_Processing", "CMSMetadata"));
}
_eventLog.Source = "CMSMetadata_Processing";
_eventLog.Log = "CMSMetadata";
}
protected override void OnStart(string[] args)
{
_eventLog.WriteEntry("In OnStart.", EventLogEntryType.Information);
}
Ошибка 1053: служба не ответила на запрос запуска или управления
своевременно
И я также заметил, что CreateEventSource() не создает запись в журнале событий, когда Я ищу его в средстве просмотра событий.
Я обнаружил, что в этом сообщении SO обсуждается ошибка 1053, с которой я столкнулся, но ни одно из решений мне не подходит.
Я подтвердил/пробовал
- Служба построена в режиме выпуска.
- Установка с помощью InstallUtil и ManagedInstallerClass.InstallHelper()
- Версия платформы соответствует тому, что я установил, на самом деле я
пробовал 4.5.2 и 4.7.2 на случай, если это действительно как-то связано с
инфраструктурой. - Служба работает как локальная система.
- Конфигурация в порядке.
- Если я удалю каждый код связанный с журналом событий, служба может быть запущена успешно.
Однако таким образом я даже не смогу установить службу.
Журнал установки (CMSMetadata.InstallLog), как показано ниже, каким-то образом указывает, что установка создаст событие источник независимо от того, использую ли я CreateEventSource() или нет.
Код: Выделить всё
Installing assembly 'C:\temp\GisSoftware\CMSMetadata\CMSMetadata.exe'.
Affected parameters are:
logtoconsole =
logfile = C:\temp\GisSoftware\CMSMetadata\CMSMetadata.InstallLog
assemblypath = C:\temp\GisSoftware\CMSMetadata\CMSMetadata.exe
Installing service CMSMetadata...
Service CMSMetadata has been successfully installed.
Creating EventLog source CMSMetadata in log Application...
Rolling back assembly 'C:\temp\GisSoftware\CMSMetadata\CMSMetadata.exe'.
Affected parameters are:
logtoconsole =
logfile = C:\temp\GisSoftware\CMSMetadata\CMSMetadata.InstallLog
assemblypath = C:\temp\GisSoftware\CMSMetadata\CMSMetadata.exe
Restoring event log to previous state for source CMSMetadata.
Service CMSMetadata is being removed from the system...
Service CMSMetadata was successfully removed from the system.
Подробнее здесь: https://stackoverflow.com/questions/623 ... cant-be-la
Мобильная версия