2017-05-17 3 views
0

リモートデータベース(SQL Server 2012)にアプリケーションを接続していて、「接続タイムアウトが切れました」という問題に直面しました。ログイン前のハンドシェイク確認応答を消費しようとしている間にタイムアウト時間が経過しました。 pre-loginハンドシェークが失敗したか、またはサーバーが時間内に応答できなかったためです。このサーバーに接続しようとしている時間は - [Pre-Login] initialization = 211; handshake = 14787;ログイン前のハンドシェイク確認応答を消費しようとしている間にタイムアウト時間が経過しました。 (1日に数回)

アプリケーションはリモートデータベースで問題なく動作していますが、このエラーは1日に数回しか発生しません(たとえば、1日に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)); 
             } 
            } 
           } 
          } 
         } 

ここでは何が欠けているのかをご提案ください。

+0

タイトルの変更を検討してください – Clijsters

+0

タイトルの誤りはありますか? –

+0

エラーメッセージを引用しているようです。 – Clijsters

答えて

0

私はこれに似たシナリオに直面しています。あなたのケースでは、サーバー名からIPAddressに接続サーバーを変更していましたnkj-connect.com

+0

この問題は1日に数回しか発生しませんが、同じ問題に直面しましたか? –

+0

私の場合、それは私がドメイン内に接続できるようになりましたが、外のドメインからは接続できないようになりました。 –

+0

私のケースでは、外部ドメインから正常に接続できましたが、このコードを実行するときにエラーが数回しか発生しませんでした。問題の直後には、次の呼び出しで正常に動作します。 –

関連する問題