Я бы проверил Windows Event Viewer для начала, чтобы, возможно, получить ошибку .NET Framework, когда служба перестает работать. Если перезапуск сервера необходим для его повторной работы, вероятно, это связано с тем, что ваш сервис вызван окружающей средой.
С учетом приведенных в вашем вопросе советов лучше всего посоветовать.