以下のカスタムSQLサーバーを使用するようにsessionStateを構成し、1分後に有効期限が切れるように設定しました。セッションは常にブラウザとSQLサーバに残っているようです。私はさらに、regenerateExpiredSessionIdをfalseに設定しても、同じ問題を抱えています。私はIIS 7のWindows 7プロの下でasp.net 4.0を実行しています。ASP.NET sessionState SQLServerモードのタイムアウトが機能しない
私のweb.configファイルの設定
<sessionState mode="SQLServer" allowCustomSqlDatabase="true" sqlConnectionString="Data Source=MYCON\SQL2008REXPRESS;Initial Catalog=DBASPState; User ID=DB1543Write;Password=test" timeout="1" sqlCommandTimeout="10" regenerateExpiredSessionId="false" stateNetworkTimeout="10" compressionEnabled="true" cookieless="false" />
私はてsessionStateデータベース内のテーブルASPStateTempSessionsをチェックし、それ内のレコードを見てきました。読み取りおよび書き込みの所有者権限は、このデータベースのユーザーで構成されています。 「Even Viewer」からのエラーはありません。
私はASPStateTempSessionsテーブルから値をチェックしました。セッションがオフになっているように見えますが、5時間は1分間と比較しています。 asp.netは、現在のマシンのタイムゾーンではなく、別のタイムゾーンを使用して1分以内に有効期限が切れるように設定されているようです。 29:01.677 は有効期限(列)2011年12月17日17時30分
私の現在の時刻が2011年12月17日11:29 データベース列が(列)2011年12月17日17値CreatedDateにしていたあります:03.903
データベースの値に関する詳細は以下のとおりです。私は、ブラウザの「更新」ボタンを押した後、私が最初に私のウェブサイト
SessionId, Created, Expires, LockDate, LockDateLocal, LockCookie, Timeout, Locked, SessionItemShort, SessionItemLong, Flags
0wtp4j0traj5e0gydygkyoe22476b033 2011-12-17 17:29:01.677 2011-12-17 17:30:03.903 2011-12-17 17:29:03.873 2011-12-17 11:29:03.873 11 1 False <Binary data> NULL 0
を訪問したときに
最初のレコードがあり、レコードは新しい有効期限が切れた時点で更新が、セッション情報がまだそこにあるました
0wtp4j0traj5e0gydygkyoe22476b033 2011-12-17 17:29:01.677 2011-12-17 17:37:08.910 2011-12-17 17:36:08.907 2011-12-17 11:36:08.907 13 1 False <Binary data> NULL 0
@JamesSmithこれは本当にあなたのためですか?私は同じ問題に直面していますが、テーブルからセッションを削除した後もログアウトしません。あなたはいくつか考えを与えることができますか? – jkyadav