2010-06-07 240 views
0

我寫了一個帶有iFrame的頁面,該頁面基本上是通過我們的服務器上的一系列內部頁面循環顯示我們公司的日常活動。我認爲這個問題是偶爾會丟失會話並重新導向登錄屏幕以繼續失去會話,這是我們網站上任何人嘗試訪問網頁而不登錄的默認行爲。ASP.NET中的會話超時

我已設置會話超時時間爲4小時,iframe每循環6頁,每次10秒到5分鐘,我甚至在頁面上設置了META刷新,每3小時刷新一次。我不明白還有什麼可以阻止這個網頁繼續活躍。

+0

是否有可能使用AJAX而非Iframe?我懷疑這會比使用Iframe更好的設計解決方案? – Darknight 2010-06-07 14:50:07

+0

我開始使用AJAX,但後來發現有些用戶仍然使用IE6並且沒有啓用ActiveX。最終,它很可能會在某個時候轉換回來。 – BornReady 2010-06-08 01:42:39

+0

由於這是針對內部網站的,因此它已被優先推回,但一旦我能夠測試,我一定會回來,回覆並檢查最佳解決方案。 – BornReady 2010-06-18 12:03:44

回答

2

也許這可以幫助你:keep-session-alive

+0

這將工作。我在工作中使用這個。 – rebelliard 2011-03-30 06:39:24

+0

呃哦。鏈接腐爛。 – Urbycoz 2013-10-18 09:31:28

+0

@Urbycoz:謝謝。我必須承認,我不確定它是哪個環節。也許這是它最初顯示的內容:[Defibrillator:保持ASP.NET Session Active Ad Infinitum](http://www.codeproject.com/Articles/10550/The-Defibrillator-Keeping-ASP-NET-Session-Alive-Ad )(希望這會延長壽命) – 2013-10-18 09:35:33

0

檢查身份驗證cookie超時。

<authentication mode="Forms"> 
<forms name="ApplicationLogin" loginUrl="Login.aspx" path="/" protection="All" timeout="240"> 
</forms> 
0

也許您的應用程序池超時。

IIS優先,但他們處理稍有不同的方案。

對於IIS,應用程序池的默認20分鐘超時是指傳入請求。如果應用程序在20分鐘內沒有收到任何請求,則應用程序池將進入休眠狀態以節省資源。發生這種情況時,應用程序中的所有會話都消失了。

ASP.NET會話超時處理每會話請求。您的網站可能非常繁忙,但如果一個用戶(即會話)在20分鐘內未處於活動狀態,則只會丟棄該會話。

所以是的,要確保會話保持活動60分鐘,您必須更改IIS應用程序池以及web.config的超時設置。

ASP.NET 2.0 Session Timeout