У меня есть приложение winform, которое должно знать, когда сервер SQL доступен, чтобы разрешить функцию синхронизации слиянием. Я попробовал варианты ниже, которые работают один раз, но я хотел бы придумать что-то более динамичное.
Следующая функция (Спасибо Alex_L ) проверяет порт 1433, на котором работает SQL и прекрасно работает. То, что я пытаюсь сделать, - это способ контролировать это в режиме реального времени. Должен ли я создать службу Windows? Как насчет любых других сетевых событий, таких как изменение сетевого подключения?
Использование этого иногда подключенного приложения очень просто. Если они есть в нашей сети, то доступна часть Merge Replication. Если их нет в нашей сети, то это не так. SQL Server никогда не должен быть доступен в нашей сети, и он ДОЛЖЕН быть всегда доступен, когда включен.
При этом я был бы открыт для решений, связанных с обнаружением нашей текущей сети вместо экземпляра SQL.
private static bool IsSqlAvailable()
{
TcpClient tcpc = new TcpClient();
try
{
tcpc.Connect("10.250.50.30", 1433);
return true;
}
catch
{
return false;
}
}