IISのセッションタイムアウトを設定する機会がありましたので、設定手順について記載します。
IIS7にセッションタイムアウトを設定する
- IISではASP.NETのセッションタイムアウトは既定で20分が設定されている。
- セッションタイムアウトの変更手段は、複数の方法があり、設定箇所により優先順が決まっている。
- セッションクリアはセッションタイムアウト以外にもワーカプロセスの再起動時に発生するので注意する。
優先順位
- コード中に埋め込み
- global.asax
- Web.config
上から順に優先度高
セッションタイムアウト設定方法
Web.configにセッションタイムアウト値を設定するには
IISマネージャーで設定する場合
- IISマネージャーを開き、[サーバ]-[サイト]-[Default Web Site]-[対象のWebサイト]を選択する
※この選択でスコープが決まり、Webサイトを選択した場合は、サイト全体に設定が反映される - 機能ビューツリーから[セッション状態]をダブルクリック
- Cookieの設定ゾーンから[タイムアウト(分)]にタイムアウト値を設定
※タイムアウト値は1~35791394の範囲が設定可能 - [適用]をクリック
- Web.configにタイムアウト値が設定されていることを確認する
Web.configに直接記載する場合
- sessionState要素にtimeout属性を追加する
※詳細は、http://msdn.microsoft.com/ja-jp/library/h6bb9cz9(v=vs.85).aspx - IISマネージャーを開き、[サーバ]-[サイト]-[Default Web Site]を選択
- 機能ビューツリーから[セッション状態]をダブルクリック
- Cookieの設定ゾーンから[タイムアウト(分)]にタイムアウト値が設定されていることを確認
ワーカープロセス設定方法
再起動時のセッションクリア対策としてワークカープロセスの再起動を抑止する
- IISマネージャーを開き、[サーバ]-[アプリケーションプール]を選択
- [対象のアプリケーションプール」-[詳細設定]を選択
- [プロセスモデル]-[アイドル状態のタイムアウト(分)]に0(無制限)を設定
- [リサイクル]-[定期的な間隔(分)]に0(無制限)を設定
- [OK]をクリック