Como eu posso dizer que o SQL Server é iniciado e pronto para usar?
-
03-07-2019 - |
Pergunta
Eu tenho um aplicativo que é executado no arranque do sistema que precisa falar com a instalação local do SQL Server 2005. Eu estou usando a classe ServiceController para esperar por ele para entrar no estado de "Running", e na maioria das vezes isso funciona bem. No entanto, por vezes, em um arranque a frio, a minha primeira consulta falhar, dizendo que não poderia fazer logon do usuário atual.
Parece uma condição de corrida, mas eu percebi que minha chamada WaitForStatus era para resolvê-lo.
Existe uma maneira melhor para se certificar de que é realmente-realmente funcionando? Devo apenas jogar em um sono extra e assumir que é tempo suficiente?
Solução
Você pode sempre usar o System.Data. Sql.SqlDataSourceEnumerator e verificação para a instância local.
No plus, você pode também descobrir informações sobre a versão com o recenseador.
Outras dicas
Você poderia apenas capturar a exceção e tente novamente até que ele funciona ...