防止Windows服务在调试期间停止

时间:2013-03-26 09:22:42

标签: c# windows debugging service windows-services

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

我很确定灵魂应该存在。有人能帮助我吗?

2 个答案:

答案 0 :(得分:1)

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

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

如果必须在实时服务上进行调试,则可以选择在虚拟机(或单独的物理机)中运行服务并使用内核调试器。

答案 1 :(得分:0)

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

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

2)发生异常会使服务工作变得有效,这意味着你需要在整个代码中加入一个很大的try \ catch来跟踪错误的位置并阻止服务停止