- - PR -
セッションのタイムアウトについて
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-10-21 14:00
お世話になります。
現在VisualStudio.Net2003を使用してWebアプリを開発しております。 なお、環境は以下の通りです。 サーバー:WindowsServer2003 StandardEdition クライアント:WindowsXP Professional 今回、Session変数を使用してページの遷移処理やDBへの登録処理時に そのSession変数を使用していますが、そのSession変数に(ロジック上で) 格納した値が、IISのデフォルトのセッションタイムアウト値である20分 を超えると破棄されてしまいます。システムの仕様として、最低2時間以上 (できれば12時間)はセッション変数を維持しておきたいのですが・・・。 Web.configのsessionStateのtimeoutプロパティを20分より多く設定しても、 global.asaxのSession_Start内にSession.Timeout値を20分より多く設定し ても、IISのセッションタイムアウト値を20分より多く設定しても、やはり セッション変数に格納した値が20分を超えると破棄されてしまいます。 上記に記させていただいた方法は、それぞれ一つづつ設定してテストしても、 すべて設定してテストしても、やはり結果は同じでした。また、認証形式 はWindows認証です。Forms認証の場合は、Cookieの状態を設定するslidingExpiration などの設定があるのですが、Windows認証の場合はCookieの状態設定やセッション のタイムアウト値を変更する方法が他に分かりかねます。もうかれこれ一週間 以上はまっております。どなたかご存知の方がいらっしゃいましたら、何卒 ご教示の程宜しくお願い申し上げます。 |
|
投稿日時: 2004-10-21 14:26
セッションのタイムアウトに関しては、こんなスレッドがありました。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=14296&forum=7 >セッション変数に格納した値が20分を超えると破棄されてしまいます。 どのようにして20分で破棄されているというのを確認しましたか? |
|
投稿日時: 2004-10-21 14:41
お世話になります。お返事まことにありがとうございます。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=14296&forum=7 教えていただいた上記のサイトは、何日か前に拝見させていただき、 ASP.NETプログラム上のHttpSessionState の値を変更してみましたがやはり 20分でSession変数が破棄されてしまいます。せっかく教えていただいたのに このような結果となってしまい、大変申し訳ありません。 また、どのようにして20分で破棄されているというのを確認したかというのは、 デバッグモードであるページ(ページAとします)を開いたまま20分以上放置し、 ページAのSession変数を格納するロジックが記載されているページを表示する部分 でブレークポイントを張り、そこでイミディエイトウィンドウでSession変数の値 を確認したところ、値が何も入っておりませんでした。 |
|
投稿日時: 2004-10-22 01:26
南部です。
Window Server 2003なので、 ご使用の仮想ディレクトリで設定されている アプリケーションプールの設定を確認しましょう。 アプリケーションプールのパフォーマンスタブで、 「アイドル タイムアウト」の時間が既定値で20分に なっているはずです。 これは可用性を高めるための事前予防策として設定されているもので、 この時間内にリクエストがないとワーカープロセスは終了します。 (プロセスがリフレッシュされます) 通常、セッションタイムアウトと上記のアイドルタイムアウトは 同じ値を指定しておくものと認識しています。 また、リサイクルタブでワーカープロセスのリサイクルが 1740分に設定されているので、29時間毎にリフレッシュされます。 こちらは、適切な値は業務設計に依存すると思います。 #間違ってたらごめんなさい。 |
|
投稿日時: 2004-10-26 20:35
南部様
ご教示まことにありがとうございます。また、ご返答が遅くなってしまい、大変申し訳ありませんでした。本日南部様のご教示の通りに設定を行ってみたところ、セッションが切れずに画面遷移することができました。まだDB登録の部分の検証が完了していませんが、画面遷移ができたことにより、かなり気持ち的にラクになりました。まことにありがとうございます。WebConfigでSQLServerモードにしようか、それともStateServerモードにしようか、など様々な方法を考えていましたが、どれもロジックを修正する部分が多くなってしまうので、出来て本当によかったです。また何かありましたら、その際は何卒宜しくお願い申し上げます。私も、これからもっと知識を吸収してアドバイスができる側になろうと思っております。 |
1