如何调试启动后立即停止的Windows服务

本文关键字:服务 Windows 何调试 调试 启动 | 更新日期: 2023-09-27 18:13:02

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

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

我的系统是Windows server 2012 R2和Visual Studio是2013.

有什么方法可以调试服务吗?

如何调试启动后立即停止的Windows服务

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

但是如果有的话,通常你可以通过dump来解决这个问题。通常只需从与服务相同的帐户启动服务可执行文件就会发现问题。

最后让我们不要忘记printf的力量。添加日志记录并将问题从日志中隔离出来。你的服务应该这样做

我刚刚在MSDN上找到了答案。

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

添加以下代码:

 System.Diagnostics.Debugger.Launch();

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