- PR -

Sessionの再作成

1
投稿者投稿内容
www
会議室デビュー日: 2004/07/26
投稿数: 5
投稿日時: 2005-01-25 19:00
インプロセスモードでSession("a")を作成しそのままの状態でタイムアウトした時に、Session_Endイベントが起こり自動的にSessionが終了していますが、
そのSession("a")をSession_Endイベント内で、例えばSession("b")に代入するなどしてタイムアウト後もSession("a")の中身を保持するということは可能なのでしょうか?
Session_Endイベント内では、すでにSession("a")は消滅しているというのは確認しており無理だとは思うのですが・・。
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2005-01-25 19:18
結論だけ申し上げると無理です。
素直にタイムアウト値を多くとりましょう。
また、セッションの種類によってはSEssion_Endが発生しません。
そのあたりは過去ログが詳しいでしょう。
_________________
「伝える」とは「人に云う」と書く。
http://d.hatena.ne.jp/NAL-6295/
todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2005-01-25 19:44
「やりたいこと」を明確にして質問してほしいです。
要求を満たすかは分かりませんが、Cookieはどうでしょう。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-01-25 22:28
引用:

todoさんの書き込み (2005-01-25 19:44) より:
「やりたいこと」を明確にして質問してほしいです。
要求を満たすかは分かりませんが、Cookieはどうでしょう。


>wwwさん

つまり、
「ユーザが長い間ブラウザを開けっ放しで放っておいた後、何らかの操作をしようとするとセッション変数がクリアされているためプログラムがエラーになる。そのエラーを出さないようにするためにはセッション終了イベントでほかのところに移し替えれば、と思ったのですが」
というようなことです。この、やりたいと思った動機が明確であれば、代替案も提供できます。
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2005-01-25 23:10
引用:

Jittaさんの書き込み (2005-01-25 22:28) より:
「ユーザが長い間ブラウザを開けっ放しで放っておいた後、何らかの操作をしようとするとセッション変数がクリアされているためプログラムがエラーになる。そのエラーを出さないようにするためにはセッション終了イベントでほかのところに移し替えれば、と思ったのですが」
というようなことです。この、やりたいと思った動機が明確であれば、代替案も提供できます。


どっかで聞いたような話ですよね。
非永続的な記憶領域であるSessionを永続的な記憶領域として使うために裏技的な処置を講じるよりも、最初から永続的な記憶領域を使うようにしましょう。Cokkeiもそのひとつだし、データベースにユーザー毎の情報を保持しておいたって構わない。
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2005-01-26 06:48
引用:

そのSession("a")をSession_Endイベント内で、例えばSession("b")に代入するなどしてタイムアウト後もSession("a")の中身を保持するということは可能なのでしょうか?


セッションがタイムアウトしたときに、セッションステートを復元して処理を続行
させるのではなく、タイムアウトした旨をユーザーに通知してログイン画面に
戻るなどのアプローチがよいのでは。

セッションのタイムアウトを考慮してないWebアプリが結構あるようです。
設計時にタイムアウト時の仕様を明確にしないと後で問題が発生します。

タイムアウトを検出する方法は下記URLを参照してください。
http://aspalliance.com/articleViewer.aspx?aId=520&pId=1

_________________
ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集
1

スキルアップ/キャリアアップ(JOB@IT)