2012-07-23 51 views
0

我在我的應用程序中面臨一個問題,即當用戶搜索任何數據,然後讓應用程序閒置15-20分鐘,然後嘗試對應用程序執行任何操作時,應用程序就會崩潰。我正在使用簡單的DevEx Grid來顯示數據和詳細信息行以及該網格的Popup控件。如何在DotNet應用程序中保持連續會話?

我認爲問題出在會話上,因爲我的應用程序無法維持會話持續時間以及由於哪個應用程序崩潰。

此外,我還沒有使用任何會話變量進入我的應用程序的數據。

我找不到這個錯誤的真正原因。

有人可以幫我一樣。

+0

增加會話超時時間或者如果您希望在應用程序生命週期中保持用戶首選項,請將數據存儲在應用程序變量中。處理異常,並在數據不可用時登出用戶 – hungryMind 2012-07-23 09:05:24

+0

即使增加會話時間也沒有用,因爲我的應用程序在此之後崩潰。我已將會話時間設置爲30分鐘,但如果應用程序閒置30分鐘或更長時間,則應用程序崩潰,我必須停止該崩潰並且不要增加會話超時。 – 2012-07-23 09:39:31

+0

使用Cookie而不是會話來保持用戶瀏覽器會話中的詳細信息...並處理cookie以填充初始數據 – hungryMind 2012-07-23 10:30:51

回答

1

您可以編寫客戶端JavaScript來使ajax調用服務器。 這將保持你的會話活着。

它允許您在服務器上有一個短暫的超時時間,對於閒置的用戶來說仍然很長時間。

確保有一個超時,但如果你的用戶離開一個小時,頁面應該將他註銷。

+0

感謝我希望這種功能,但是您能告訴我如何讓空白的ajax調用。 – 2012-07-23 09:33:08

+0

有很多方法可以做到這一點。最簡單的方法是創建一個aspx頁面並使用XMLHttpRequest https://developer.mozilla.org/en/using_xmlhttprequest調用它。看看像jquery這樣的javascript框架是跨瀏覽器的投訴。 – nunespascal 2012-07-23 09:38:23

+0

非常感謝。 – 2012-07-23 09:41:40

0

您可以將IIS中的會話超時設置爲一個非常高的數字或分鐘(例如一整天的1440)。該設置位於「會話狀態」區域。

另一種選擇是使用Opera作爲瀏覽器,並加載一次頁面。之後,使用Opera的「每頁重新加載頁面」選項每分鐘自動重新加載頁面。這將延長會議永遠。

0

由於您不會在會話中存儲任何有用的內容,因此您應該設法重新加載而不會崩潰。爲此,您需要在發生碰撞事故時進行任何處理,並找到防止碰撞的方法。或者通過初始化默認值或捕捉異常並重新開始。

相關問題