J'ai une application winform qui doit être mise au courant lorsqu'un serveur SQL est disponible afin de permettre la fonctionnalité de synchronisation de fusion. J'ai essayé des variantes de ce qui suit, qui fonctionnent une fois, mais je voudrais proposer quelque chose d'un peu plus dynamique.Surveillance en temps réel de l'état du réseau. Quels événements sont soulevés?
La fonction ci-dessous (Merci Alex_L) vérifie le port 1433 sur lequel SQL s'exécute et fonctionne très bien. Ce que j'essaie d'accomplir est un moyen de surveiller cela en temps réel. Devrais-je créer un service Windows? Qu'en est-il des autres événements réseau comme la connexion réseau?
L'utilisation de cette application parfois connectée est simple. Si elles sont sur notre réseau, la partie Fusionner la réplication est disponible. S'ils ne sont pas sur notre réseau, ce n'est pas le cas. SQL Server ne devrait jamais être disponible sur notre réseau et il DEVRAIT toujours être disponible lorsqu'il est activé. Cela étant dit, je serais ouvert aux solutions qui impliquent la détection de notre réseau actuel au lieu de l'instance SQL.
private static bool IsSqlAvailable()
{
TcpClient tcpc = new TcpClient();
try
{
tcpc.Connect("10.250.50.30", 1433);
return true;
}
catch
{
return false;
}
}
Merci, je ne le savais pas. Il n'y a aucun moyen cependant de surveiller cela en temps réel? Je devrais vérifier cela périodiquement, manuellement, afin d '«imiter» le temps réel? –
Comme je le pense, la façon la plus simple (et comme je le fais dans mes projets) est d'écrire le service Windows. Ce petit service vérifie la disponibilité des serveurs SQL (en utilisant la classe Timer) et envoie les messages aux administrateurs appropriés. –