Как я могу сказать, что SQL Server запущен и готов к использованию? - PullRequest
2 голосов
/ 05 марта 2009

У меня есть приложение, которое запускается при запуске системы и должно общаться с локальной установкой SQL Server 2005. Я использую класс ServiceController, чтобы дождаться, пока он войдет в состояние «Работает», и в большинстве случаев это работает нормально. Однако иногда при «холодной» загрузке мой первый запрос завершается неудачно, говоря, что он не может войти в систему текущего пользователя.

Звучит как состояние гонки, но я решил, что мой вызов WaitForStatus должен был его решить.

Есть ли лучший способ убедиться, что он действительно работает? Должен ли я просто добавить дополнительный сон и предположить, что он достаточно длинный?

Ответы [ 2 ]

6 голосов
/ 05 марта 2009

Вы можете просто перехватить исключение и повторить попытку, пока оно не заработает ...

3 голосов
/ 05 марта 2009

Вы всегда можете использовать System.Data.Sql.SqlDataSourceEnumerator и проверять локальный экземпляр.

Кроме того, вы можете узнать информацию о версии с помощью перечислителя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...