ADO.Net 응용 프로그램은 때때로 로컬 네트워크의 다른 서버에 연결할 수 있습니다. 주어진 연결 시도의 성공 여부는 무작위로 보입니다. 연결은 다음 형식의 연결 문자열을 사용합니다.
서버 = THESERVER \ TheInstance; Database = TheDatabase; User Id = TheUser; Password = ThePassword;
반환 된 오류는 다음과 같습니다.
연결 시간이 만료되었습니다. 사전 로그인 핸드 셰이크 승인을 사용하는 동안 시간 초과 기간이 경과했습니다.
사전 로그인 핸드 셰이크가 실패했거나 서버가 제 시간에 응답하지 못했기 때문일 수 있습니다.
이 서버에 연결을 시도하는 동안 소요 된 시간은 다음과 같습니다.-[사전 로그인] 초기화 = 42030; handshake = 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 응용 프로그램이이 오류를 수신 에서 SSMS 및 연결 문자열에 명명 된 사용자 ID / 암호를 사용하여 THESERVER에 연결할 수 있습니다.
ADO.Net 앱에서 연결이 실패하지만 SSMS의 동일한 자격 증명으로 성공하는 이유는 무엇입니까?


