I have heard that managed executables have some issues starting early after
reset (haven't seen it myself), so that would be one problem. A bigger
problem is that a service must be implemented as a dll with a specific
export exposed - something you cannot do with managed code. This leaves a
cumbersome approach whereby you write an unmanaged dll and launch a managed
process from inside it, thus negating a positive effect of using a service
(reducing the amount of processes)