Мне также пришлось иметь дело со службой, которая может занять несколько секунд / минут, чтобы иметь хороший старт. Когда служба запускается, она пытается подключиться к SQL Server. Однако, когда весь сервер был перезапущен, моя служба запускалась ДО SQL Server. (Я знаю о служебной зависимости, но она не применима к моей ситуации по определенной причине ....). Я пытался сделать цикл, пытаясь 10 раз соединиться с SQL Server, но Windows из-за тайм-аута убивала мой сервис до второй попытки.
Мое решение : я добавил таймер в "onStart ()" моего сервиса. Затем метод службы «onTick ()» 10 раз пытался подключиться к SQL Server (с ожиданием 30). Нет больше времени ожидания при запуске.
В общем,
- Мой сервис запускается через 5 секунд.
- Таймер запускается через 10 секунд после
начало.
- Таймер пытается 10 раз [каждый раз ждать 30 секунд]
подключиться к SQL Server.
- Если это удастся, таймер отключится сам, если нет (после 10 попыток), я остановлю службу.
Обратите внимание на более элегантный способ решения проблемы, но, возможно, какая-то часть моего решения может помочь любому, кто находится в той же ситуации, что и я,