Một ứng dụng ADO.Net chỉ đôi khi có thể kết nối với một máy chủ khác trên mạng cục bộ. Có vẻ như ngẫu nhiên cho dù một nỗ lực kết nối nhất định thành công hay thất bại. Kết nối đang sử dụng một chuỗi kết nối ở dạng:
Máy chủ = THESERVER \ TheInstance; Cơ sở dữ liệu = TheDatabase; User Id = TheUser; Mật khẩu = ThePassword;
lỗi trả về là:
Hết thời gian chờ kết nối. Khoảng thời gian chờ đã trôi qua trong khi cố gắng sử dụng xác nhận bắt tay đăng nhập trước.
Điều này có thể là do bắt tay đăng nhập trước không thành công hoặc máy chủ không thể phản hồi lại kịp thời.
Thời lượng dành cho việc cố gắng kết nối với máy chủ này là - [Đăng nhập trước] khởi tạo = 42030; bắt tay = 0;
Ứng dụng .NET là một ứng dụng thử nghiệm nhỏ thực thi mã sau:
using (SqlConnection conn = new SqlConnection(cs))
using (SqlCommand cmd = new SqlCommand("SELECT COUNT(*) FROM TheTable", conn))
{
conn.Open();
int rowCount = (int)cmd.ExecuteScalar();
}
TheTable nhỏ, chỉ 78 hàng.
Tuy nhiên, trên cùng một máy mà ứng dụng .NET nhận được lỗi này, tôi có thể kết nối với THESERVER bằng SSMS và User Id / Password có tên trong chuỗi kết nối.
Tại sao kết nối có thể không thành công từ ứng dụng ADO.Net nhưng lại thành công với thông tin đăng nhập giống hệt nhau từ SSMS?