【问题标题】:My Windows Service cannot instantiate我的 Windows 服务无法实例化
【发布时间】:2011-08-23 11:07:19
【问题描述】:

我正在维护一个 Windows 服务,它有一个非常不幸的错误。我无法再调试代码,因为服务只是拒绝启动。这是错误:

Windows 无法在本地计算机上启动 MyService 服务。

错误 1053:服务没有响应启动或控制 及时提出要求。

我在 main 方法中插入了一些日志到文件行,但它从未超过我的 Windows 服务的实例化。它停在这条线之前

ServiceBase.Run(ServicesToRun);

所以 Run 方法永远不会被执行。我猜是 MyService 的实例化失败了。但这怎么可能呢?

static void Main()
{
        //this line is reached

        ServiceBase[] ServicesToRun;
        ServicesToRun = new ServiceBase[] 
        { 
            new MyService() //halts here
        };

        //this line is never executed
        ServiceBase.Run(ServicesToRun);
}

【问题讨论】:

  • 可以把代码贴在MyService构造函数中吗?
  • MyService 的构造函数是什么样的?
  • 您在事件查看器中有更多信息吗?还要确保您运行服务的帐户具有足够的权限。
  • 是的,我在事件查看器中获得了信息。由于我的配置文件不正确,这基本上是一个未处理的异常。 Windows 服务应该在实例化时解析一个 XML 文件,但是缺少一个“>”符号,这意味着它甚至不是一个有效的 XML 文件。因此,教训必须是在 Windows 服务的构造函数中进行良好的错误处理。谢谢大家的帮助
  • 请将此作为答案,然后接受。

标签: c# windows-services


【解决方案1】:

前几天我遇到了这个错误。我不知道它是否会为您解决,但我是这样解决的:

安装后,右键单击并转到属性。转到登录选项卡并确保启用“允许服务与桌面交互”。 我不确定为什么 Windows 7 似乎需要这个。

【讨论】:

    【解决方案2】:

    上面转贴的回复:

    是的,我在事件查看器中获得了信息。由于我的配置文件不正确,这基本上是一个未处理的异常。 Windows 服务应该在实例化时解析一个 XML 文件,但是缺少一个“>”符号,这意味着它甚至不是一个有效的 XML 文件。因此,教训必须是在 Windows 服务的构造函数中进行良好的错误处理。谢谢大家的帮助。

    【讨论】:

      猜你喜欢
      • 2013-12-23
      • 2021-11-13
      • 1970-01-01
      • 2014-07-27
      • 2011-06-28
      • 2012-08-04
      • 1970-01-01
      • 2023-03-06
      • 1970-01-01
      相关资源
      最近更新 更多