2011-11-22 22 views
7

私はこれがおそらくあなたのほとんどの人にとっては簡単な質問であることを知っています。しかし、私の問題は、私のサーバーホストがセッションプールを毎分空にすることです。では、ユーザーに1分以上ログインしてもらうにはどうすればいいですか?セッションタイムアウトを防ぐ方法

私はSessionStatesを使用できると聞いたことがありますが、私のような初心者のために使いやすいネット上のガイドは見つかりませんでした。

また、私はクッキーでそれについてやっていることを聞いたことがあります。どうやって?

私たちはセッション状態を維持するために、SQL Serverを使用するC#と.NET

答えて

12

は一つの方法です。

http://weblogs.asp.net/stevewellens/archive/2009/06/09/ah-ah-ah-ah-staying-alive-staying-alive.aspx

あなたのウェブページが「生きている」ようにしたいことがあります。つまり、ユーザーが複雑なフォームに記入すると、セッションが終了する前にセッションがタイムアウトしないようにします。ユーザーは非常に怒って正当にそれを得ることができます:あなたはさらに叫ぶことがあります!

セッションタイムアウトを非常に大きな値に増やすだけではありません。これを行うと、訪問者がサイトを離れると、セッションはサーバーメモリに数時間にわたってアクティブなままになります。セッションタイムアウトを増やすことは解決策ですが、必ずしも良い解決策ではありません。

目標は、セッションタイマーをリセットするポストバックがなくても、Webページがクライアントマシン上で開いている間はセッションをアクティブに保つことです。 Webページが閉じられると、セッションは正常にタイムアウトするはずです。

私はこのためにソリューションを実装しました:クライアントは、セッションタイマーをリセットするセッションタイムアウト未満の間隔でサーバーに「ping」します。これはハートビートのデザインパターンとして知られています(リンク先のサイト/ページが見つかりませんでした)。

+9

+1良い解決策であるだけでなく、グルーヴィータイトルのためだけでなく、 – David

2

で働いています。 http://idunno.org/articles/277.aspx

これには、サーバーファームで作業するという追加の利点があります。

これらの記事はまたあなたのために参考になります。本当にわかりやすい動画の

http://msdn.microsoft.com/en-us/library/ms178586.aspx

http://support.microsoft.com/kb/317604

、この検索を試してみてください。ここでhttp://www.bing.com/videos/search?q=asp.net+session+state+&go=&qs=n&sk=&sc=2-19&form=QBVR#

関連する問題