尝试消耗预登录握手确认时超时。(每天仅几次)

3
我正在将我的应用程序与远程数据库(SQL Server 2012)连接,但我遇到了“连接超时已过期”的问题。在尝试消耗预登录握手确认时,超时时间已经过去。这可能是由于预登录握手失败或服务器无法及时响应所致。连接到该服务器的尝试所花费的时间为- [Pre-Login] initialization = 211; handshake = 14787;
需要注意的是,应用程序与远程数据库的连接正常,但这个错误每天只会出现几次(例如,在一天的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));
                                        }
                                    }
                                }
                            }
                        }

请建议我在这里缺少什么。

1
请考虑更改您的问题标题。 - Clijsters
标题有什么问题吗? - Narendra Jangir
1
看起来你在引用一个错误信息。 - Clijsters
是的,这是一个错误信息,我已经查询了以了解这个错误信息的原因。 - Narendra Jangir
1
可能是Connection to SQL Server Works Sometimes的重复问题。 - Hermann.Gruber
1个回答

0
我曾经遇到过类似的情况。对我有用的是将连接服务器从服务器名称更改为IPAddress,在您的情况下是nkj-connect.com

这个问题一天只发生几次,你遇到过相同的情况吗? - Narendra Jangir
在我的情况下,更像是我可以在域内连接,但无法从域外连接。 - Prabhat G
在我的情况下,我能够成功地从外部域连接,但是当执行此代码时,每天只会遇到几次错误。问题发生后,接下来的调用就可以正常工作。 - Narendra Jangir

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接