CreateEventSource не создает запись в журнале событий, и службу Windows невозможно запустить.C#

Место общения программистов C#
Ответить
Anonymous
 CreateEventSource не создает запись в журнале событий, и службу Windows невозможно запустить.

Сообщение Anonymous »

Я разрабатываю новую службу Windows и выполняю действия, описанные в этой инструкции.

В классе службы я делаю почти то же самое, что и в статье

Код: Выделить всё

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.
В завершение моего вопроса: что я пропустил при использовании журнала событий в службе Windows?

Подробнее здесь: https://stackoverflow.com/questions/623 ... cant-be-la
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»