I read the MSDN article on the topic. To quote:
Because a service must be run from within the context of the Services Control Manager rather than
Add lots of verbose logging in your OnStart. It's painful and old school, but it works.