All i'm going to say in this answer is make sure you uh... don't have anything similar to this in your service registration code..
while (!Debugger.IsAttached) {
Thread.Sleep(500);
}
This totally did not happen to me and definitely did not make me a very sad boy after 3 hours of screwing around with all of the above answers and more.