Easier way to debug a Windows service

If I want to quickly debug the service, I just drop in a Debugger.Break() in there. When that line is reached, it will drop me back to VS. Don’t forget to remove that line when you are done.

UPDATE: As an alternative to #if DEBUG pragmas, you can also use Conditional("DEBUG_SERVICE") attribute.

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

On your OnStart, just call this method:

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

There, the code will only be enabled during Debug builds. While you’re at it, it might be useful to create a separate Build Configuration for service debugging.

Leave a Comment