2

まず、ネットワークケーブルを抜きます。

次に、SqlClient.SqlConnectionオブジェクトと、接続タイムアウトを指定しない(したがってデフォルトで15秒)接続文字列を使用して、C#内からSQLServerに接続しようとします。Integrated Security=SSPI;Persist Security Info=False;Data Source=MYSERVER;Database=MYDB"

または、タイムアウトを指定する接続文字列。5秒でさらに短くなります。"Integrated Security=SSPI;Persist Security Info=False;Data Source=MYSERVER;Database=MYDB;Connect Timeout=5"

いずれにせよ、への呼び出しconnection.Openは42秒後にタイムアウトエラーで戻ります。ネットワークケーブルを以前に接続し直すと、エラーが早く発生する可能性があります。接続タイムアウトが影響しないのはなぜですか?これはどこかに文書化されていますか?それを回避する方法はありますか?

4

1 に答える 1

2

Connect Timeoutサーバーを解決でき、接続を待機している場合にのみ適用されます。

また、MSDNによるConnect Timeoutと、試行を終了してエラーを生成する前にサーバーへの接続を待機する時間の長さ(秒単位-デフォルトは15)です。

注:
5秒は、ネットワークハードウェアがネットワークが使用可能かどうかを検出するには短すぎます。10秒以上である必要があります。

于 2012-06-20T15:22:52.090 に答える