Test d'une connexion à SQLServer
Bonjour,
J'essaie de faire une fonction qui teste la connexion à SQLServer. Cette fonction est lancé dans un thread.
- Si je débranche mon pc du réseau et que je lance l'appli, la fonction détecte bien que la base n'est pas disponible.
- Si je lance l'appli alors que mon pc est connecté au réseau, la fonction détecte bien que la base est disponible, mais ne détecte plus la déconnexion lorsque je déconnecte le pc du réseau pendant que l'appli tourne.
Je ne sais pas si c'est la bonne méthode pour faire ca...visiblement non
Est-ce que quelqu'un aurait une idée svp ?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| private void TestServeur()
{
coupureReseau = false;
Log.LogInformation("Test Serveur lancé");
//string srvConnectionString = ConfigurationManager.ConnectionStrings["Serveur"].ConnectionString;
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(this.serveurConnectionString);
string datasource = builder.DataSource;
while (!this.arreterPing)
{
try
{
Log.LogInformation($"Test de connexion à la base de données {datasource}...");
using (SqlConnection s = new SqlConnection(this.serveurConnectionString))
{
s.Open();
}
Log.LogInformation($"Connexion à la base de donnée {datasource} réussie");
if (coupureReseau)
{
// Le reseau est revenu
Log.LogInformation($"La base de données {datasource} est de nouveau disponible. ");
// Synchronisation des tables en attente dans la table DBSync :
//this.SynchroAttente();
this.Synchro();
}
coupureReseau = false;
}
catch (SqlException e)
{
Log.LogErreur($"Base de données {datasource} indisponible");
coupureReseau = true;
}
Thread.Sleep(1000); // Délai d'une seconde
}
} |