如何调试一个错误的Windows服务,它在启动后立即停止

时间:2016-10-13 18:49:29

标签: visual-studio visual-studio-2013 windows-services visual-studio-debugging windows2012

我目前发现一个问题,我的一个项目,即Windows服务,在启动后立即停止。之前不是这样的。

更糟糕的是,我无法将服务附加到Visual Studio,因为它在启动后立即停止。

我的系统是Windows Server 2012 R2,Visual Studio是2013。

我有没有调试服务?

2 个答案:

答案 0 :(得分:0)

您可以直接在调试器下启动该服务。要实现此目的,您可以修改服务启动命令(sc config binPath=),也可以使用GFlags更改服务映像以在调试器下启动。在这两种情况下,您的调试器都将在后台,然后您需要远程进入它。

但通常你可以从转储中解决问题,如果有的话。通常只需从与服务相同的帐户启动服务可执行文件即可显示问题。

最后,我们不要忘记printf的力量。添加日志记录并将问题与日志隔离开来。无论如何,您的服务应该

答案 1 :(得分:0)

我刚刚在MSDN中找到答案。

https://msdn.microsoft.com/en-us/library/cktt23yw.aspx

添加以下代码:

    System.Diagnostics.Debugger.Launch();

在OnStart方法的最开始。然后运行net start serviceName(需要管理凭证)