ASP/ASP.NETのセッションタイムアウトの既定は20分

聞かれたので

ASP(CLASSIC ASP、 *.asp

既定値:タイムアウト20分

□優先順位1:コード上で設定(影響範囲:そのセッション中)

<% Session.Timeout=17'Minutes %>

□優先順位2:IISの設定(影響範囲:そのサイト配下すべて)

ディレクトリタブ→構成ボタン→オプションタブ→セッションタイムアウト(分)

ASP.NET(*.aspx

既定値:タイムアウト20分

□優先順位1:各ページに設定(影響範囲:そのセッションで、次に指定されるまで)

(例:Form_Load)
Session.Timeout=15'Minutes

□優先順位2:global.asaxによる設定(影響範囲:そのセッション)

Application_Startメソッドに追記:
Session.Timeout=45'Minutes

□優先順位3:Web.configによる設定*1(影響範囲:そのWebアプリケーション)

□優先順位4:Machine.Config(既定値=20分の理由がここ)(影響範囲:マシン全体)
  <sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" 
    stateNetworkTimeout="10" sqlConnectionString="data source=127.0.0.1;Integrated Security=SSPI" 
    cookieless="false" timeout="20"/>
参考IISASP.NETタブ

それぞれ、無指定時は「既定値」
複数指定のある場合は優先順位の高いほうが有効になる。

*1:IIS上のASP.NETタブ上での編集と等価=web.config