J'ai un programme winform qui utilise la réplication de fusion pour maintenir une synchronisation SQL Express locale avec un serveur SQL central sur notre réseau. En raison de la nature de cette application, le processus de synchronisation s'exécute automatiquement sur App ouvrir et fermer. La façon dont je le fais (ci-dessous) semble prendre beaucoup de temps. Qu'est-ce qui serait un moyen plus rapide? En dehors des sentiers battus, il serait probablement correct si je vérifiais simplement le serveur lui-même, bien que cela pourrait présenter un trou pour un cas de bord où le serveur est disponible, mais SQL est en panne. Alternativement, peut-être juste vérifier si notre domaine est disponible bien que cela pourrait laisser le même trou, je suppose.Le moyen le plus rapide de savoir si SQL Server est disponible
Merci!
private static bool IsSqlAvailable()
{
try
{
var conn = new SqlConnection("Data Source=WWCSTAGE;Initial Catalog=Connect;Integrated Security=True");
conn.Open();
conn.Close();
HUD.IsSQLAvailable = true;
return true;
}
catch (Exception)
{
HUD.IsSQLAvailable = false;
return false;
}
}
Comme une note supplémentaire. Ce qui précède est particulièrement lent lorsqu'il est hors réseau. Je mets même le délai d'attente de connexion = 1 et il se trouve toujours à ce point pendant un certain temps.
Si vous définissez un délai d'attente de connexion à 1 seconde et qu'il faut encore un certain temps avant d'échouer, la tentative de connexion n'est peut-être pas à blâmer. Pourrait-il la recherche DNS? Voir http://www.eggheadcafe.com/conversation.aspx?messageid=31241642&threadid=31241641 pour des informations intéressantes sur les délais d'attente de connexion. – Jacob