2013-03-06 119 views
0

爲了確保我的會話始終保持開啓,我創建了一個簡單的stayalive.aspx頁面。頁面的標題包含每5分鐘刷新頁面的元數據。爲什麼我的ASP.NET保持連接邏輯不起作用?

在我的頁面加載邏輯中,我只是將一個值設置爲會話。

protected void Page_Load(object sender, EventArgs e) { 
    System.Web.HttpContext.Current.Session["Alive"] = 1; 
} 

我的理解是,只要你不斷在會話中放置一個值,會話就會繼續保持活躍狀態​​。但是,這似乎並不奏效。我在大約30分鐘內仍然會出現會話超時。

我想知道是否有人有任何洞察力爲什麼不工作。

請注意,web.config中的sessionstate以及表單身份驗證超時值設置爲300(5小時)。

我想過了,而不是在會議設置的值相同,我每次都設置了不同的值:

System.Web.HttpContext.Current.Session["Alive"] = DateTime.Now; 

你認爲這將幫助?

+1

你介意分享爲什麼你需要會話不超時? – 2013-03-06 23:42:38

+0

您實際上不需要任何東西來調用會話,只需調用該頁面,會話就會更新。但是你確定這個頁面被刷新了嗎?用戶如何與網站的其他部分進行交互,他們是否將該頁面打開並在其他網頁上工作? – Aristos 2013-03-06 23:46:08

+0

檢查此替代解決方案:http://stackoverflow.com/questions/13997778/reset-session-timeout-without-doing-postback-in-asp-net/13998000#13998000 – Aristos 2013-03-06 23:49:18

回答

0

活動會話不需要向會話中添加值。如果您繼續刷新aspx頁面,會話應自動擴展。