2012-07-11 199 views
5

我正在开发一款应用程序来安装&作为Windows服务运行。它仍然是越野车和意外停止(留下任何Windows事件记录之一),当我试图再次启动它,我得到了错误Windows无法启动服务

Windows无法启动本地计算机上的服务{服务的名称}。 错误1067:进程意外终止。

我重新启动计算机(服务器2008 R2;虚拟机,万一有所作为),没有帮助。卸载并重新安装我的服务,仍然会出现该错误!

东西在机器上需要清除/刷新,以便它会尝试再次启动服务。我不想重建整个虚拟机,但我没有想法。

UPDATE

我忘了提,这个Windows服务 - 完全相同的代码&安装 - 是其他3台机器运行上述错误。在OnStart()中加入这个调试器听起来仍然是一种很好的方式。

+2

通常这是由于未处理的异常。 – 2012-07-11 20:29:59

+2

这意味着您的代码中存在一些错误。检查事件日志,看看它给你什么信息。还尝试添加日志记录机制,以便您知道错在哪里 – Shyju 2012-07-11 20:30:20

+0

您的服务访问网络驱动器吗? – roymustang86 2012-07-11 20:30:50

回答

9

如果你有机会获得代码,你可以在OnStart方法的第一行添加一个方法Debugger.Break

一旦你“打破”进入应用程序调查抛出异常的位置。

+0

整洁。不知道那个。 – NotMe 2012-07-11 21:05:29

+0

我把Debugger.Break()放在OnStart()的第一行,但它没有被打中:( – Hari 2014-01-02 12:33:15

+0

@Hari你可以仔细检查你的应用程序是否使用Debug配置编译(而不是Release)? – oleksii 2014-01-02 21:43:34

1

您可以将调试器附加到正在运行的服务。详情请见Debug Windows Service Applications

很幸运,您可以轻松地复制问题。您可以使用代码安装.NET Studio来调试您的问题。

另一种技术是使服务成为一个普通的应用程序。您知道可疑代码是在启动过程中。因此,只需使用Startup函数中的代码创建应用程序,然后从那里开始调试。

祝你好运,

汤米Kwee