我正在为该产品开发一个扩展,实际上是Windows服务。我从Visual Studio附加服务,但经过几分钟的调试后,服务停止工作,所以我需要从头开始调试或快速完成所有事情。
我很确定灵魂应该存在。有人能帮助我吗?
答案 0 :(得分:1)
我不认为将调试器附加到实时服务是一个好主意;服务管理员希望服务能够迅速响应状态请求和控制信号,如果服务单步或受到干扰,服务无法做到这一点。
调试服务的常用过程是可执行文件具有命令行选项,使其作为常规应用程序运行,并在必要时使用某种机制来模拟服务控制信号。然后,您可以像调试任何其他应用程序一样调试它。
如果必须在实时服务上进行调试,则可以选择在虚拟机(或单独的物理机)中运行服务并使用内核调试器。
答案 1 :(得分:0)
Windows服务停止有两个主要原因
1)它完成了他们的工作并执行你的代码,这意味着你的代码不会进入计时器,无限循环或做背景工作
2)发生异常会使服务工作变得有效,这意味着你需要在整个代码中加入一个很大的try \ catch来跟踪错误的位置并阻止服务停止