Приложение для консольного приложения C# работает на другой машине, чем на моем SQL Server 2014. Я использую ado.net для подключения к ней. Как определить, автоматически ли перезагружается сервер sql после установки обновлений Windows? В моем клиентском приложении я использую SystemEvents_SessionEnding, но это мне не помогает.Обнаружение перезагрузки SQL Server
Я читал об отказоустойчивости соединения, но это, похоже, также не решает эту проблему.
Есть ли определенное событие ado.net, которое я могу захватить? Создание приложения на сервере, отправляющем UDP, не является моим предпочтительным решением, так как я не хочу использовать пинг и т. Д.
Я действительно ищу что-то вроде события, на которое можно реагировать.
например. услуги по уведомлению: https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlnotificationinfo(v=vs.110).aspx
Спасибо!
Какой из следующих вы точно хотите обнаружить? является сервером _available_ или _restarted с момента последнего взаимодействия с ним или _detect, если SQL Server автоматически перезагружается после установки обновлений Windows. – HadiRj
Я хочу знать, что перед перезагрузкой приостановить мое приложение и продолжить, как только он снова будет доступен. – NickD
Ваша проблема не звучит особенно уникально. То есть любой, кто хочет иметь отказоустойчивость в своем приложении, сделает что-то подобное. Один общий подход - попытаться подключиться (или использовать объединенное соединение), и если вы получите сообщение об ошибке, указывающее на то, что сервер недоступен, повторите попытку с более длительными интервалами до тех пор, пока вы не добьетесь успеха. Найдите «экспоненциальную отсрочку» для идей. –