2012-07-24 55 views
2

我創建了一個空的mvc3項目。爲什麼我的會話沒有過期?

它有一個控制器(「家」)和2個動作(「指數」,「約」)

我使用SQLSERVER救我的會話。

這是我的配置文件。

<sessionState mode="SQLServer" cookieless="false" timeout="1" sqlConnectionString="Data Source=localhost;Integrated Security=True;MultipleActiveResultSets=False"> 

超時是1分鐘。

在索引頁中。我創建了一個會話

Session["currentTime"] = DateTime.Now.ToString(); 

在我的關於頁面中,我把它寫在視圖中。

@Session["currentTime"] 

第一次,我打開了關於頁面,當前時間顯示。我獨自離開頁面5分鐘,然後重新刷新它。舊的currentTime仍然存在。我將超時設置爲1,所以它現在應該過期,並且不應該在頁面上顯示任何內容。

也許我完全誤會了會話是如何工作的。請告訴我爲什麼會話價值在其過期後仍然存在。

編輯:

它不是緩存。我添加了以下代碼來禁用緩存。仍然有問題。

<meta http-equiv="cache-control" content="max-age=0" /> 
<meta http-equiv="cache-control" content="no-cache" /> 
<meta http-equiv="expires" content="0" /> 
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" /> 
<meta http-equiv="pragma" content="no-cache" /> 

我想我找到了hte問題,不知道如何解決它。

我從Chrome中清除了我的緩存。打開「/ home/index」頁面創建會話,然後進入「/ home/about」頁面。檢查數據庫。有一個會話創建。再次檢查「創建」和「過期」字段。確認它會在一分鐘後過期。

然後我離開我的電腦5分鐘。在我回來刷新「/ home/about」頁面後。會議仍然在那裏,沒有過期。查詢我的會話表,注意「過期」字段改爲1分鐘+刷新頁面的時間。爲什麼過期字段改變?????????

月2日更新:

我相信這是問題所在。 SQL會話提供程序不會主動監視會話表中的Expires列。相反,會話在從表中刪除之前不會「正式」過期,這是通過調用DeleteExpiredSessions存儲過程的SQL代理作業完成的。默認情況下,作業配置爲每60秒運行一次。

我很確定我的SQL代理沒有運行。但不知道如何打開它。如果您有任何想法,請告訴我。

+0

請參閱我的答案以檢查如何打開sql代理 – Anand 2012-07-25 08:33:09

回答

1

有很多事情可能在這裏。配置中設置的超時時間爲「1」分鐘,所以您的會話變量會超時。

您正面臨的情況(我確信90%)就是高速緩存的情況。您的索引頁面默認控制器操作必須是HTTP get。在頁面內放置一個按鈕,然後嘗試使用按鈕刷新您的網頁。該按鈕將發送到服務器。我確定會話變量不會持續。

更新2

請參閱下面的鏈接查看how to turn on the Sql Agent。請打開它,讓我們知道它是否有效

+0

其不是緩存。我想我知道問題是什麼,但不知道如何解決。我編輯我的帖子,請你看看。 – qinking126 2012-07-24 11:43:54

0

聞起來像緩存問題。你在哪個瀏覽器?

您在瀏覽器中使用的會話是爲所有控制器初始化的「訪客」會話(除會話之外的原因)。即使它過期了,也會創建一個新時間戳並放入時間戳。所以,每次刷新頁面時,都應該看到當前時間。

編輯:(後更新)。

如果認爲它的作品完全正確。根據this,您需要設置會話狀態的regenerateExpiredSessionId字段,以重新生成過期的會話ID。否則,現有的會話對象只需重新生成並重新使用。

編輯2:

之前的修改將是有效的,如果cookie的是真實的。在你的代碼中,你提到的cookieless是錯誤的,但由於某種原因,它仍然作爲無cookie = true。你確定你有正確的參數sessionState

+0

它不是緩存。我想我知道問題是什麼,但不知道如何解決。我編輯我的帖子,請你看看。 – qinking126 2012-07-24 11:44:17

+0

經過幾個小時谷歌搜索,我相信我發現它爲什麼不工作。再次更新我的文章。 – qinking126 2012-07-24 14:22:43

相關問題