Timeout expired , 操作が完了する前に経過したタイムアウト時間、またはサーバー
EnterpriseLibrary SQL Timeout expired ソリューション
SQL実行タイムアウト例外の操作完了前にタイムアウト時間が経過したか、サーバーが応答しない、インターネットでググってみると、The timeout period elapsed prior to completion of the operation or server is not responding:
server.scīptTimeoutのことです。
2. Connection オブジェクトの CommandTimeOut プロパティ。
3. Command オブジェクトの CommandTimeOut プロパティ。
4. IEブラウザの設定です。
Server.scīptTimeout、デフォルト値は90秒です。
増やすには、aspファイルに以下のような文章を追加してください。
Server.scīptTimeout=999です。
ページのタイムアウトを999秒に設定します。
最初はServer.scīptTimeoutだけを設定しました。
しかし、いくら大きな値を設定しても、タイムアウトエラーが発生します。
コミュニティでcommandTimeoutプロパティに言及した投稿を見かけました。
そこで、Option Packのドキュメントを確認したところ、他にもタイムアウトがあるようです。
ConnectionオブジェクトとCommandオブジェクトの両方に、CommandTimeOutプロパティがあります。
接続タイムアウトは、SqlConnection に対してのみ動作するように接続文字列で設定されています。
SqlCommand.CommandTimeout
コマンドの実行を終了し、エラーを発生させるまでの待ち時間を取得または設定します。
コマンドの実行を待つ時間(秒)を指定します。デフォルトは30秒です。
SqlConnection.ConnectionTimeout
接続を確立しようとする試みを終了し、エラーを発生させるまでの待ち時間を取得します。
接続が開かれるのを待つ時間(秒)。デフォルト値は15秒です。
SqlHelper これはあまり満足のいくものではありません。
最終的に SqlCommand.CommandTimeout プロパティを追加したところ、問題なく動作するようになりました。
/// <summary>ExecuteCommandTimeout</summary>
private const int TIMEOUT = 999;
public static DataSet GetDataSetByStoredProc(string sqlStoredProcName, List<SqlParameter> parameters)
{
DataSet ds = new DataSet();
try
{
Database db = DatabaseFactory.CreateDatabase();
DbCommand dbCommand = null;
dbCommand = db.GetStoredProcCommand(sqlStoredProcName);
dbCommand.CommandTimeout = TIMEOUT;
if (parameters ! = null)
{
Addparameter(db, dbCommand, parameters);
}
ds = db.ExecuteDataSet(dbCommand);
if (parameters ! = null)
{
FillOutParameter(db, dbCommand, parameters);
}
}
catch (Exception)
{
throw;
}
return ds;
}
SqlHelperを使用する場合のこの問題の解決策は、SqlConnectionではなく、SqlCommandにタイムアウトを設定することです。
該当するコードは以下の通りです。
-
private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, SqlParameter[] cmdParms, out bool mustCloseConnection) { if (conn.State ! = ConnectionState.Open) { mustCloseConnection = true; conn.Open(); } else { mustCloseConnection = false; } cmd.Connection = conn; cmd.CommandText = cmdText; if (trans ! = null) cmd.Transaction = trans; cmd.CommandType = cmdType; cmd.CommandTimeout = 240; if (cmdParms ! = null) { foreach (SqlParameter parm in cmdParms) cmd.Parameters.Add(parm); } return; }
関連リンク
http://bytes.com/topic/asp-net/answers/331693-sqlclient-sqlexception-timeout-expired
http://blog.csdn.net/long2006sky/archive/2007/07/09/1683459.aspx
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ハートビート・エフェクトのためのHTML+CSS
-
HTML ホテル フォームによるフィルタリング
-
HTML+cssのボックスモデル例(円、半円など)「border-radius」使いやすい
-
HTMLテーブルのテーブル分割とマージ(colspan, rowspan)
-
ランダム・ネームドロッパーを実装するためのhtmlサンプルコード
-
Html階層型ボックスシャドウ効果サンプルコード
-
QQの一時的なダイアログボックスをポップアップし、友人を追加せずにオンラインで話す効果を達成する方法
-
sublime / vscodeショートカットHTMLコード生成の実装
-
HTMLページを縮小した後にスクロールバーを表示するサンプルコード
-
html のリストボックス、テキストフィールド、ファイルフィールドのコード例