【发布时间】: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