長時間実行されているストアドプロシージャのいくつかがデフォルトの30秒以上を要するサイズまで成長しました。私はプログラムでコマンドオブジェクトのCommandTimeoutsのいくつかを設定しましたが、ストアプロシージャへの呼び出しは30秒後にタイムアウトしているように見えます。CommandTimeoutには何も効果がないようです。クエリは30秒後にもタイムアウトします。
は、ここに私がやったことだ:このプロパティを設定するweb.configファイルで
-
キー= "COMMANDTIMEOUT" 値を追加= "180"
がトップにこれを追加しましたタイムアウトセットを必要とする私のクラスの:
淡いCOMMAND_TIMEOUTとして整数= ConfigurationMa nager.AppSettings( "CommandTimeOut")
コマンドオブジェクトを作成した後、オブジェクトにtimeoutプロパティを設定します。
cmd.CommandTimeout = COMMAND_TIMEOUT
残念ながら私のストアドプロシージャは、まだ彼らは実行に30秒以上かかるとき、タイムアウトしているようです。どんな助けでも大歓迎です。
そして、あなたはあなたのコード確信していますデフォルトをオーバーライドしていますか? – JeffO
また、トランザクションタイムアウトも発生している可能性があります。トランザクションタイムアウト(TransactionScopeを使用していた)が究極の原因でした。 –
私がデフォルトを上書きしていると仮定して、私のコメントから私が行ったことを正確に見ることができ、変数が正しく設定されていることを確認するコードをデバッグしました。なぜそれがデフォルトを上書きしないのか分かりません。 –