一尘不染

调试Windows服务的简便方法

c#

有没有比通过Windows Service Control
Manager启动服务然后将调试器附加到线程更简单的方法来遍历代码?这有点麻烦,我想知道是否有更简单的方法。


阅读 483

收藏
2020-05-19

共1个答案

一尘不染

如果我想快速调试服务,只需Debugger.Break()在其中插入一个即可。当到达那条线时,它将使我回到VS。完成后不要忘记删除该行。

更新: 作为#if DEBUG编译指示的替代方法,您也可以使用Conditional("DEBUG_SERVICE")属性。

[Conditional("DEBUG_SERVICE")]
private static void DebugMode()
{
    Debugger.Break();
}

在您的OnStart,只需调用此方法:

public override void OnStart()
{
     DebugMode();
     /* ... do the rest */
}

在那里,仅在调试构建期间启用代码。当您在使用它时,为服务调试创建一个单独的构建配置可能会很有用。

2020-05-19