5

我正在开发一个应用程序来安装和作为 Windows 服务运行。它仍然有问题并且意外停止(在 Windows 事件日志中也没有留下任何内容),当我尝试再次启动它时,我得到了错误

Windows 无法在本地计算机上启动 {name of service} 服务。错误 1067:进程意外终止。

我重新启动了计算机(Server 2008 R2;一个虚拟机,以防有什么不同),没有任何帮助。卸载并重新安装了我的服务,但仍然出现该错误!

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

更新

我忘了提到这个 Windows 服务——完全相同的代码和安装——正在其他 3 台机器上运行而没有上述错误。将调试器放入 OnStart() 听起来仍然是可行的方法。

4

2 回答 2

9

如果您有权访问代码,则可以在方法Debugger.Break的第一行添加一个OnStart方法。

一旦您“闯入”应用程序,请调查引发异常的位置。

于 2012-07-11T20:53:52.840 回答
1

您可以将调试器附加到正在运行的服务。调试 Windows 服务应用程序中的详细信息。

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

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

祝你好运,

汤米奎

于 2012-07-12T22:16:50.453 回答