【问题标题】:Windows service stops automaticallyWindows 服务自动停止
【发布时间】:2010-10-07 00:55:25
【问题描述】:

我创建了一个 Window 服务并让它在 localsystem 帐户下自动运行,当服务启动时它会为我触发此消息然后停止

本地计算机上的 [服务名称] 服务启动然后停止。如果某些服务没有被其他服务或程序使用,它们会自动停止。

有什么问题,有什么解决办法?

【问题讨论】:

  • 当 Java 策略不允许适当的权限(例如“policy.all”)时,Java 服务会出现此错误。
  • @djangofan 您的建议似乎很有用,请将其作为答案发布。
  • 制作您的 Windows 服务 debuggable stackoverflow.com/a/15075454/413032

标签: c# .net windows-services


【解决方案1】:

要么您没有在 OnStart 方法上启动任何线程来执行工作,要么您的 OnStart 方法中引发了异常。

如果抛出异常,它将出现在 Windows 事件日志中。在任何情况下,Windows 事件日志都是一个不错的起点。

通常一个 OnStart 方法如下所示:

Thread _thread;

protected override void OnStart(string[] args)
{
    // Comment in to debug
    // Debugger.Break()

    // Do initial setup and initialization
    Setup();

    // Kick off a thread to do work
    _thread = new Thread(new MyClass().MyMethod)
    _thread.Start();

    // Exit this method to indicate the service has started
}

【讨论】:

  • +1 帮助很大。我要注意(至少对于 Windows 7),Event Viewer 包含 Windows 日志(然后在应用程序下检查)。
【解决方案2】:

这个特定的错误消息意味着它所说的 - 你的服务已经开始,但后来很快它就退出了出于某种原因。好消息是您的服务实际上在做某事,因此您已正确配置可执行文件并作为服务运行。

一旦开始,由于某种原因它正在退出。你需要找出这是为什么。添加一些调试以告诉您它的启动和运行以及已知的退出案例。如果这不能揭示问题,那么添加一些调试以让您知道它仍在运行并从停止时开始向后工作。

【讨论】:

    【解决方案3】:

    您是否正在追踪任何调试信息?很可能在初始化期间引发了异常。我会追踪你所有的异常并使用 Debugview 来查看它们。

    【讨论】:

      【解决方案4】:

      我遇到了类似的问题,因为我的事件日志已满并且服务无法写入它们。因此,无法通过在事件查看器中查找消息进行调试。我放了一个 try/catch 并将异常转储到一个文件中。我不得不更改日志上的设置以根据需要而不是每 7 天填写一次,这允许服务启动。

      当然,对我而言,问题的根源在于我的 nVidia 驱动程序问题导致我的事件日志泛滥,现在我可能在磁盘上跳动,但这是另一个问题。

      【讨论】:

        【解决方案5】:

        也许您需要以 本地系统帐户 的身份运行该服务。见this post by Srinivas Ganaparthi

        【讨论】:

        • idk 为什么你被否决了。今天这个评论对我有帮助!谢谢莫欣德
        【解决方案6】:

        我在启动 JBoss 时遇到了同样的问题,然后我更改了 JAVA_HOME 变量,它对我有用。是JBoss版本不支持1.6,支持1.5。

        【讨论】:

          【解决方案7】:

          我遇到了类似的问题,在我的情况下,程序只是在 OnStart 方法中崩溃了。它试图读取一些它找不到的文件,但我想任何其他程序崩溃都会给出相同的结果。如果是 Windows 窗体应用程序,您会收到一些错误消息,但这里只是“您的服务启动和停止”

          如果您像我一样需要从 Windows Service .exe 所在的目录中读取一些文件,请查看以下主题: Getting full path for Windows Service

          【讨论】:

            【解决方案8】:

            在我的情况下,我的服务中的一个方法被递归调用(因为没有终止条件为真),并且在特定时间后我的服务被停止。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2011-11-14
              • 2019-07-27
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2023-04-05
              相关资源
              最近更新 更多