如何检测Windows服务是否已崩溃?

时间:2018-05-14 23:42:01

标签: c# .net winforms service windows-services

我安装了一个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 :(得分:1)

如果服务崩溃,您将需要另一项持续监控主服务的服务,如果它崩溃了你做你想做的事情。你也应该这样做,你的主服务可以启动监控你的主要服务(第二服务)的服务,以防它崩溃