2011-03-15 35 views
0

如果超時,是否有創建新會話的方法?在移動應用程序開發使用asp.net?如果頁面超時,我們如何在頁面上創建新會話

收到此錯誤:

the page requires session state that is no longer available. either the session has expired, the client did not send a valid session cookie, or the session state history size is too small. try increasing the history size or session expiry limit

這是我在我的web.config:

<sessionState cookieless="UseCookies" cookieName="Mobile_Session" regenerateExpiredSessionId="true"> 
    </sessionState> 
+0

從技術上講,一旦達到超時,服務器將自動爲同一用戶生成一個新的會話,因爲它將用戶視爲新的訪問者。您可以通過將會話選項設置爲使用「無Cookie會話」並查看URL如何隨着時間的推移而進行測試。我猜你正在研究保存會話還是恢復會話,下面有一些很好的答案。 – 2011-03-15 17:41:07

+0

我清理了一下我的答案。如果您仍然遇到麻煩,可能需要一些環境。希望能幫助到你! – agradl 2011-03-15 18:00:13

回答

0

會話處理在服務器上完成,所以如果客戶端發送後請求他們當前的會話超時了ASP.Net應用程序將自動創建一個新的會話。

據我所知,一旦會話超時,無法重新啓動或從中恢復信息。如果您想阻止會話結束,那麼您可以定期發送一個小的AJAX請求來阻止它(例如,如果會話在20分鐘後結束,則每隔15分鐘發送一次請求)。此請求將強制會話保持活動狀態。

+0

是否適用於使用asp.net的移動應用程序開發? – 2011-03-15 17:37:42

+0

移動與否並不重要。沒有不同。 – 2011-03-15 17:40:10

+0

我沒有親自使用使用asp.net的移動應用程序,但會話處理與完整的移動框架相同。會話處理(即由服務器控制)的基礎知識對包括php和其他非.Net平臺在內的所有服務器端語言都是相同的。 – detaylor 2011-03-15 17:40:17

1

會話過期後,無法恢復。你有幾個選擇。

  • 增加你 web.config設置的會話超時(讓它延續 更長)
  • 定期進行回傳,以 刷新會話超時(這是 通常在一個隱藏的iframe這樣做的用戶不知道或某種彈出窗口給用戶選項)
  • 將用戶重定向到登錄頁面或主頁,並向他們解釋他們的會話已過期。它還有助於將最初請求的url保存在新創建的會話中,以便他們可以選擇返回到他們所在的頁面。
+0

是否適用於使用asp.net的移動應用程序開發? – 2011-03-15 17:38:02

+0

是的。所有的服務器端功能仍然適用於ASP.Net,如果您在前端使用jQuery或不同的移動框架,它只是前端技術不同。 – 2011-03-15 17:42:12

+0

我得到這個錯誤:'該頁面需要不再可用的會話狀態。會話已過期,客戶端未發送有效的會話cookie,或者會話狀態歷史記錄大小太小。嘗試增加歷史記錄大小或會話到期限額「 – 2011-03-15 17:45:26

相關問題