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
Check out this question, which discusses how to catch unhandled exceptions in a window service.