Quote Originally Posted by sknake View Post
Why don't you fire visual studio up and attach a debugger to it and see what is going on? Also depending on how you have written your service you should split it out to a command or form application so you can debug the code more easily. For my services I write all of the service code in another assembly and develop it with a windows form app then reference the assembly in a service when I am completed with testing.... but it may be too late for that so a debugger is fine too.
I do this as well. I typically build my source code for my services into an assembly so that I can test it in just a simple windows console app. Try running a debugger find out which code is running. If it always bugs out after three hours of running it makes sense that it would be some type of resource that's causing the problem, you said memory was fine and threads are normal, what about TCP UDP connections? Are messages being put in the queue faster than they're being processed?

Are each of the 2-4 threads running the same code? Or do they all have different jobs like one listens for messages and adds them to the queue, another waits for messages to be put on the queue and sends them out to other services etc...