0

我正在为该产品开发一个扩展,它实际上是 Windows 服务。我从 Visual Studio 附加到服务,但在调试几分钟后,服务停止工作,所以我需要从头开始调试或快速完成所有工作。

我很确定灵魂应该存在。有谁能够帮我?

4

2 回答 2

1

我不认为将调试器附加到实时服务是一个好主意。服务管理器希望服务能够迅速响应状态请求和控制信号,如果服务是单步执行的或受到其他干扰,则服务无法做到这一点。

调试服务的通常过程是让可执行文件有一个命令行选项,使其作为常规应用程序运行,并在必要时使用一些机制来模拟服务控制信号。然后,您可以像调试任何其他应用程序一样对其进行调试。

如果确实必须在实时服务上进行调试,另一种方法可能是在虚拟机(或单独的物理机)中运行服务并使用内核调试器。

于 2013-03-28T07:42:19.737 回答
0

Windows 服务停止的主要原因有两个

1)它完成他们的工作并执行你的代码,这意味着你的代码不会进入计时器、无限循环或做后台工作

2)发生异常使服务停止工作,这意味着您需要在整个代码中放置一个很大的 try\catch 以跟踪错误在哪里并防止服务停止

于 2013-03-26T10:34:41.067 回答