我已將sessionState配置爲使用下面的自定義SQL Server並將其設置爲在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" />
我檢查表ASPStateTempSessions在SessionState的數據庫,並在其中看到了記錄。讀寫,所有者權限是當前配置該數據庫的用戶的當前配置。 「Even Viewer」沒有錯誤。
我檢查了ASPStateTempSessions表中的值,下面它看起來像會話是關閉比較5小時比較1分鐘。看起來像asp.net使用另一個時區而不是當前機器時區將其配置爲在1分鐘內過期。
我當前時間是12/17/2011 11:29上午 數據庫列有值CreatedDate(列)2011-12-17 17:29:01.677 Expires(column)2011-12-17 17:30 :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 2016-01-22 07:13:16