У меня есть два зеркальных SQL-сервера (например, A и B). Я написал простую программу на C# (подключение через SqlConnection
), которая вставляет строки в БД. Когда я делаю отработку отказа на сервере А, программа выдает исключение, затем я пытаюсь переподключиться и получаю исключение по тайм-ауту (**A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: SSL Provider, error: 0**
).
Когда я перезапускаю приложение, соединение успешно устанавливается (к серверу B). Далее делаю отказоустойчивость на сервере Б, программа выдает исключение, потом пытаюсь переподключиться, и получается - подключение к А без перезапуска программы.
Моя строка подключения:
Data Source=SERVER_A;Failover Partner=SERVER_B;Initial Catalog=TEST_DB;persist security info=True;user id=USER_LOGIN;password=USER_PASS;Connection Timeout=60;
Я также пытаюсь установить большой тайм-аут (60 секунд) и пытаюсь очистить все пулы sqlconnection, очистить один пул по соединению, но это не работает.
Интересный факт: если я использую доменный логин и пароль, все работает нормально! (SID пользователя тот же)