我正在将我的应用程序与远程数据库(SQL Server 2012)连接,但我遇到了“连接超时已过期”的问题。在尝试消耗预登录握手确认时,超时时间已经过去。这可能是由于预登录握手失败或服务器无法及时响应所致。连接到该服务器的尝试所花费的时间为- [Pre-Login] initialization = 211; handshake = 14787;
需要注意的是,应用程序与远程数据库的连接正常,但这个错误每天只会出现几次(例如,在一天的100次尝试中,只有5次出现此错误),其余所有应用程序都可以正常与该数据库通信。
以下是用于连接SQL Server数据库并执行查询的C#代码。
请建议我在这里缺少什么。
需要注意的是,应用程序与远程数据库的连接正常,但这个错误每天只会出现几次(例如,在一天的100次尝试中,只有5次出现此错误),其余所有应用程序都可以正常与该数据库通信。
以下是用于连接SQL Server数据库并执行查询的C#代码。
List<string> lstDuplicateSNames = new List<string>();
string commaSeparatedStudentNames = "X,Y,Z,A,B,C";
string query = "SELECT DISTINCT(Student_NAME) FROM V_STUDENT_RECORDS WHERE Student_NAME IN ('" + commaSeparatedStudentNames + "')";
using (SqlConnection myConnection = new SqlConnection("Database=Student_DB;Server=nkj-connect.com;Integrated Security=true;"))
{
using (SqlCommand myCommand = new SqlCommand())
{
myCommand.Connection = myConnection;
myCommand.CommandType = CommandType.Text;
myCommand.CommandText = query;
myCommand.CommandTimeout = 0;
myCommand.Connection.Open();
using (SqlDataReader reader = myCommand.ExecuteReader())
{
// Check is the reader has any rows at all before starting to read.
if (reader.HasRows)
{
while (reader.Read())
{
lstDuplicateSNames.Add(reader.GetString(0));
}
}
}
}
}
请建议我在这里缺少什么。