Как определить, произошел ли сбой службы Windows? - PullRequest
0 голосов
/ 15 мая 2018

У меня установлена ​​служба Windows, она работает.

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

protected override void OnShutdown()   
{  
    WriteToEventLog("Services shut down.");       
}

private void WriteToEventLog(string logMessage)
{
    var mySource = "MySourceLog";
    // Create the source and log, if it does not already exist.
    if (!EventLog.SourceExists(mySource))
    {
        EventLog.CreateEventSource(mySource, mySource); 
    }
    // Create an EventLog instance and assign its source.
    using (var eventLog = new EventLog())
    {
        eventLog.Source = mySource;
        // Write an entry to the event log.
        eventLog.WriteEntry(logMessage, EventLogEntryType.Warning, 1002);
    }
}

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

1 Ответ

0 голосов
/ 15 мая 2018

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

...