Debugger.Launch launches a visual GUI application. By default, services do not interact with the desktop, and therefore everything that they do cannot be "visible."
Support for interacting with the desktop was slowly removed from Windows services (for example, the option "Interaction with the desktop" was removed from some versions of the server). I would suggest that they continue this trend.
Windows services, by their nature, are not GUI applications; they can be launched before and after a user logs on to the desktop and, therefore, cannot constantly display a GUI. Usually you should not depend on the ability to have a graphical interface in the service.
If you want to debug a service, I suggest launching it as a regular application so that you can do things like Run and Debug. Shameless plugin: you can see Developing Windows Services in Visual Studio to create a way that supports this.
Peter Ritchie
source share