Додаток ADO.Net лише іноді може підключитися до іншого сервера в локальній мережі. Здається випадковим, вдала чи невдала спроба підключення. Для з'єднання використовується рядок з'єднання у формі:
Сервер = THESERVER \ TheInstance; База даних = TheDatabase; ID користувача = TheUser; Пароль = ThePassword;
повернена помилка:
Термін очікування підключення минув. Період часу очікування минув під час спроби споживати підтвердження рукостискання перед входом у систему.
Це може бути через те, що рукостискання перед входом у систему не вдалося або сервер не зміг відповісти вчасно.
Тривалість спроби підключитися до цього сервера тривала: [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?