Есть ли любые вещи заботиться о при выполнении процесса или исполняемого файла как сервис. Вещи как тихий вход. Критические сценарии сообщения об ошибке? и т.д.? Как Вы обрабатываете его?
Для отчетов о критических ошибках вы ограничены использованием стандартных настроек службы (в свойствах установленной службы), либо делаете что-то сами. Это может быть простой файл журнала, который регистрирует неожиданные ошибки (используя AppDomain.UnhandledException для их отлова и регистрации), использование журнала событий Windows для регистрации подобной информации, или другой процесс, следящий за службой на предмет ошибок (т.е. остановки службы) и оповещающий кого-либо.
В Microsoft есть статья под названием "Introduction to Windows Service Applications", которая является хорошим общим введением в создание служб в .Net.
Некоторые другие моменты о разработке служб Windows из моего опыта:
OnStart
службы запускает новый поток для запуска службы, а затем возвращается. Не показывать окна сообщений / диалоговые окна.
Имейте в виду, что ваше приложение обычно не запускается под той же учетной записью, что и вошедший в систему пользователь. Поэтому, если пользователь может получить доступ к какому-либо файлу / каталогу, это не означает, что служба может делать то же самое.
Убедитесь, что у вас есть какая-то система оповещения, которая сообщит вам, если служба перестает работать, например отправьте электронное письмо себе или в какой-нибудь почтовый ящик.
Если это имеет смысл, не забудьте реализовать событие Pause. Обрабатывайте все исключения, чтобы при сбое происходил корректный сбой.