プロパティが 1 秒に設定されたSystem.Data.Linq.DataContext
オブジェクトがありConnectionTimeout
ますが、接続が例外を返すのにまだ 30 秒かかります。
問題を示す StopWatch 出力を含むコードを次に示します。
Debug.WriteLine("!! Method start");
Stopwatch sw = Stopwatch.StartNew();
MyDataClassesDataContext dc = new MyDataClassesDataContext();
Debug.WriteLine("!! Connection.ConnectionTimeout is: " + dc.Connection.ConnectionTimeout);
// Output is: !! Connection.ConnectionTimeout is: 1
Debug.WriteLine("!! CommandTimeout is: " + dc.CommandTimeout);
// Output is: !! CommandTimeout is: 1
try
{
string s = (from rows in dc.MyTable
where rows.MyValue == 3
select rows.MySecondValue).SingleOrDefault();
return s;
}
catch (Exception)
{
sw.Stop();
Debug.WriteLine("!! Method ended after " + sw.Elapsed.Seconds + " seconds");
// Output is: !! Method ended after 27 seconds
return null;
}
ConnectionTimeout
プロパティは、接続文字列を使用して 1 に設定されました。接続前は 1 のように見えるため、1 秒後にタイムアウトするはずですが、代わりに 27 秒かかります。これは、LINQ to SQL を使用するときに変更するタイムアウト値が間違っていますか?