如何使用断点调试Windows服务?

dot*_*ner 5 .net debugging windows-services

我有一个带定时器的Windows服务.很难调试它.因为我启动服务并在代码的不同部分放置断点.当我附上这个过程时,我希望服务从一开始就开始,而不是在我有断点的中间代码中的一些randome位置.它很难像普通应用程序一样调试,你知道起点.看来背景中的流程还没有完成.所以每一次,我开始调试,而不是从第一个断点开始,它从应用程序中间的一些随机断点开始.

我想知道windows服务在进程,线程等方面是如何工作的......我怎样才能从头开始调试?

Mal*_*har 9

我假设你当然在谈论.Net.我总是使用以下代码来调试我的服务.我把它放在我想要调试器启动的地方.启动该服务,它会自动启动Visual Studio.对我来说效果很好.

System.Diagnostics.Debugger.Launch();

System.Diagnostics.Debugger.Debug();


Cha*_*ana 0

最简单的方法...

将服务代码的业务功能部分放在单独的类中、单独的库程序集中...然后您可以使用简单的控制台应用程序独立调试它...