Приложение ADO.Net только иногда может подключиться к другому серверу в локальной сети. Кажется случайным, успешна данная попытка подключения или нет. Соединение использует строку соединения в форме:
Сервер = THESERVER \ TheInstance; База данных = TheDatabase; Идентификатор пользователя = TheUser; Пароль = Пароль;
возвращается ошибка:
Истекло время ожидания подключения. Время ожидания истекло при попытке использовать подтверждение квитирования перед входом в систему.
Это может быть связано с тем, что квитирование перед входом в систему не удалось или сервер не смог ответить вовремя.
Время, потраченное на попытки подключения к этому серверу, было - инициализация [Pre-Login] = 42030; рукопожатие = 0;
Приложение .NET - это небольшое тестовое приложение, которое выполняет следующий код:
using (SqlConnection conn = new SqlConnection(cs))
using (SqlCommand cmd = new SqlCommand("SELECT COUNT(*) FROM TheTable", conn))
{
conn.Open();
int rowCount = (int)cmd.ExecuteScalar();
}
Таблица небольшая, всего 78 строк.
Однако на том же компьютере, где приложение .NET получает эту ошибку, я могу подключиться к THESERVER с помощью SSMS и идентификатора пользователя / пароля, указанного в строке подключения.
Почему может произойти сбой подключения из приложения ADO.Net, но успешный с идентичными учетными данными из SSMS?