Проверка правильности SQL-соединения
У меня есть VB.NET применение. Это приложение постоянно находится в памяти и сведено к минимуму в области лотка, потому что мы используем его очень часто. Проблема возникает, когда мы ВПН заходим на сайт клиента. Эти VPN-соединения уничтожают все другие сетевые подключения к нашим машинам и от них.
Тогда каждый раз, когда мой VB.NET приложение обновляет свою базу данных, начинают возникать ошибки, потому что машина потеряла связь с SQL-сервером, однако они происходят не на уровне соединения, а только тогда, когда читатель пытается читать.
Я проверяю connection. open, но из-за пула соединений SQL я просто получаю предыдущее соединение, которое было действительным до того, как сеть была отключена. Есть ли в любом случае возможность проверить, является ли действительным фактическое SQL-соединение, прежде чем повторно выдавать соединение из пула?
Я создал отдельное приложение, чтобы протестировать решение этой проблемы. (ниже)
Если нет соединения с первой попытки, я получаю ошибку, но если первое соединение действительно, а затем я физически отключаю кабель локальной сети, я все равно получаю полностью успешное соединение. Мне нужно быть уверенным, что это соединение действительно допустимо, или создать исключение, которое я могу перехватить и обработать до попытки выполнения транзакций на SQL-сервере. Если нет, мне придется отключить Объединение, что немного замедлит процесс :-(
Imports System.Data.SqlClient Public Class Form1 Public Conn As New SqlConnection Private Sub OpenConnection if conn.state <> 1 then 'actually here the problem *** conn.open endif End sub End Class
*** - на самом деле соединение уже разорвано при отсоединении кабеля локальной сети, но оно показывает открытое