|Could be that, could be a firewall, could be something else.
Before trying to fix it though I'd introduce a minimum of logging in the service so in future you don't have to stare blindly at that nearly information-free message: "the service started, and then stopped unexpectedly".
It's also nice to have the ability to debug service initialization. To do this, introduce a config setting and put a method like this into your service class:
static void AwaitDebugger()
string s = ConfigurationManager.AppSettings["debug"];
if (s == null || s.ToLower() != "true") return;
DateTime until = DateTime.Now.AddSeconds(30);
while (DateTime.Now < until && !Debugger.IsAttached)
Now in the service main thread, just insert a call to this method before doing anything else. (Not in the start method that probably simply starts the main thread; you want this method to return immediately as before. But in the thread it starts, you want to wait for a debugger to attach if so configured.) Build, deploy, and debug!