有没有比通过Windows Service Control Manager启动服务然后将调试器附加到线程更简单的方法来遍历代码?这有点麻烦,我想知道是否有更简单的方法。
如果我想快速调试服务,只需Debugger.Break()在其中插入一个即可。当到达那条线时,它将使我回到VS。完成后不要忘记删除该行。
Debugger.Break()
更新: 作为#if DEBUG编译指示的替代方法,您也可以使用Conditional("DEBUG_SERVICE")属性。
#if DEBUG
Conditional("DEBUG_SERVICE")
[Conditional("DEBUG_SERVICE")] private static void DebugMode() { Debugger.Break(); }
在您的OnStart,只需调用此方法:
OnStart
public override void OnStart() { DebugMode(); /* ... do the rest */ }
在那里,仅在调试构建期间启用代码。当您在使用它时,为服务调试创建一个单独的构建配置可能会很有用。