QA@IT
この質問・回答は、@ITの旧掲示板からインポートされたものです。

ASP.NETでセッションのタイムアウト時間が指定どおりにならない

お世話になっております。

ログオン画面後、長時間経過してもログイン状態を保持したいということでセッションのタイムアウト時間を延長したいのですが、web.configファイルのsessionStateのtimeout値を120分(2時間)に指定したのですが、60分もたつ前にタイムアウトでセッションがクリアされてログイン画面に戻ってしまいます。
IISのタイムアウトの設定も2時間にしたのですが状況は変わりません。
希望のセッションタイムアウト時間にするにはどのようにしたらよろしいでしょうか。
これまで調べても大体30分ぐらいのタイムアウトで設定されているものばかりで1時間以上の設定について見つけることができませんでした。

何かご存知の方、いらっしゃいましたらぜひご教授ください。

質問者:ラン

回答

プログラム中からSession.TimeOutプロパティを使ってタイムアウト時間を設定することができます。web.configの設定が反映されないのはプログラム中でこれが使用されているからかもしれません。

投稿者:ぼのぼの

編集 履歴 (0)

障害時など、自動でIISがリスタートされ、セッションが消える場合があります。

特にIIS6にて、ワーカープロセス分離モードというものにしている場合、
結構勝手に再起動されてしまいます。

IIS を再起動する
http://www.microsoft.com/resources/documentation/WindowsServ/2003/enterprise/proddocs/ja-jp/Default.asp?url=/resources/documentation/WindowsServ/2003/enterprise/proddocs/ja-jp/wsa_restartingiis.asp
「自動再起動」項目

トラブルシューティング(IIS6)
http://www.microsoft.com/resources/documentation/WindowsServ/2003/standard/proddocs/ja-jp/Default.asp?url=/resources/documentation/windowsserv/2003/standard/proddocs/ja-jp/qss_wss_troubleshooting.asp
「ワーカー プロセスのリサイクルによってアプリケーションのセッション状態が失われる」項目

投稿者:TomScissors

編集 履歴 (0)

なんとなくですが…

ランさんの書き込み (2005-05-10 12:16) より:

ログオン画面後、長時間経過してもログイン状態を保持したいということでセッションのタイムアウト時間を延長したいのですが、web.configファイルのsessionStateのtimeout値を120分(2時間)に指定したのですが、60分もたつ前にタイムアウトでセッションがクリアされてログイン画面に戻ってしまいます。

フォーム認証とか使っててそちらの動作とセッションを混同してたりしませんか?

投稿者:なちゃ

編集 履歴 (0)

ぼのぼの様、TomScissors様、なちゃ様
アドバイス本当にありがとうございます、現在お教えいただきました点についていろいろ検証させていただいております。
また新たに結果がわかりましたらご報告、また質問させていただきます。本当にありがとうございます。

投稿者:ラン

編集 履歴 (0)

アドバイスくださいました方々本当にありがとうございました。
今回の件はTomScissors様からのアドバイスでありましたワーカープロセスでした。
Webサイトの方の設定やWeb.configファイルは頭にありましたがワーカープロセスのリサイクルの方は失念しておりました。
こちら回避できますよう、現在いろいろ調べつつ作業しております。
本当にありがとうございました。

投稿者:ラン

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。