Comment savoir si SQL Server est démarré et prêt à être utilisé?
-
03-07-2019 - |
Question
J'ai une application qui s'exécute au démarrage du système et qui doit communiquer avec l'installation locale de SQL Server 2005. J'utilise la classe ServiceController pour attendre qu'elle entre le " En cours d'exécution " état, et la plupart du temps cela fonctionne bien. Toutefois, parfois, lors d’un démarrage à froid, ma première requête échoue, indiquant qu’elle ne pouvait pas se connecter à l’utilisateur actuel.
Cela ressemble à une situation de concurrence critique, mais j’ai pensé que mon appel WaitForStatus était supposé le résoudre.
Existe-t-il un meilleur moyen de s’assurer qu’il fonctionne vraiment? Dois-je simplement dormir un peu plus et penser que c'est assez long?
La solution
Vous pouvez toujours utiliser System.Data. Sql.SqlDataSourceEnumerator et recherchez l’instance locale.
Sur le plus, vous pouvez également découvrir les informations de version à l'aide de l'énumérateur.
Autres conseils
Vous pouvez simplement capturer l'exception et réessayer jusqu'à ce que cela fonctionne ...