服务启动然后停止并显示消息:服务未及时响应启动或控制请求

The service starts and then stops with message: The service did not respond to the start or control request in a timely fashion

我使用以下代码开发了一个简单的 windows 服务。 当我启动服务时,大约需要 20 秒,服务没有启动,我收到标题中提到的错误消息。

注意:它在事件日志中记录 "Starting...",但之后的代码似乎没有 运行。请指教

Dim eventId As Integer = 0

Private Sub OnTimer(sender As Object, e As Timers.ElapsedEventArgs)
    EventLog.WriteEntry("Monitoring the System", EventLogEntryType.Information, eventId)
    eventId = eventId + 1
End Sub

Protected Overrides Sub OnStart(ByVal CmdArgs() As String)

    EventLog.WriteEntry("Starting...") ' this line executes

    Dim timer As System.Timers.Timer = New System.Timers.Timer()
    timer.Interval = 60000 ' 60 seconds
    AddHandler timer.Elapsed, AddressOf Me.OnTimer
    timer.Start()
    Return

    ''''' some unused code below as I have Return
End Sub

Windows 为 OnStart 方法向 return 提供最多约 30 秒的服务。如果没有在这段时间内,Windows 假设服务没有正确启动并给你错误。

您的 OnStart 方法永远不会 return,因为您在其中有一个无限循环。您需要做的是在 OnStart 方法中创建新线程,启动它,然后 return。新线程应该执行您希望服务实际执行的任何工作。

在对 SO 进行更多研究后,我发现问题出在我使用的是调试版本!!! See the post