.NET開発基盤部会」によって運営されています。†ASP.NETのタイムアウトについての考慮点を纏めました。動作し続けないものがあるので注意が必要。†HTTPクライアント側(クライアント側)のタイムアウト値。こちらは、タイムアウト後にサーバー側が動作し続けるモノが多い。HTTPクライアントに依って異なるが、だいたい以下のものがある。†データ・プロバイダ側(クライアント側)のタイムアウト値。こちらは、タイムアウト後にサーバ側が停止(ロールバック)されるモノが多い。データ・プロバイダに依って異なるが、だいたい以下のものがある。実行タイムアウト以外に様々なタイムアウトが存在する。実行タイムアウトの場合、タイムアウト後にサーバ側は動作を停止する(当然といえば当然)。意外にも、コネクション・タイムアウト以外を発見できず。†web.config(httpRuntimeタグのexecutionTimeout属性)に記述する。†web.config(sessionタグのtimeout属性)に記述する。†DBに依って異なるが、だいたい以下のものがある。通常、DBの実行タイムアウト相当は、データプロバイダ側にある模様。†クライアント側設定とサーバ側設定がある。コネクション・レベルのタイムアウトなので、どちら側の設定の場合も、タイムアウト時に、サーバは動作をしていないことになる。†クライアント側タイムアウトでは、APサーバのThreadは停止しないことがある。停止しない場合、Transactionの結果はAPサーバの処理結果に依る。†サーバ側タイムアウトでは、APサーバのThreadが停止する。停止する場合は、Transactionはロールバックされる。ConnectionやTransactionオブジェクトは、CloseされないでGCされるとTransactionをロールバックする仕様であるため。従って、Exceptionが上がっているのにTransactionオブジェクトをCommitするようなコードを書いてはダメ。