I have a super-simple windows service that literally only logs a single message at both OnStart and OnStop. I have an NLog.config which configures a single Chainsaw target, and a single rule that directs all log messages to that target.
The service never finishes starting, and the NLog messages never show up on the other end of that UDP target. I have tried stepping into the NLog assembly using Reflector.NET and I can confirm that things get locked up somewhere in the NLog assembly, but I had a hard time pinpointing exactly where.
Another little bit of information: what I did previously was to install the service with a user identity (a user with admin rights). If I remove it and install it again but with the LocalSystem identity, it works just fine.