2009-06-06 66 views

回答

3
Session.Timeout=5 

意味着超時5分鐘。我不認爲你可以將其設置爲無窮大,但可以將其設置爲大約數目。

+0

我可以設置的最大值是多少? – George2 2009-06-06 05:07:19

+1

「允許的最小值爲1分鐘,最大值爲1440分鐘。」 - http://msdn.microsoft.com/en-us/library/ms525473.aspx – Chris 2009-11-17 14:45:26

2

您可以在幾分鐘內指定一個Session.Timeout值。 或者讓你的頁面每n分鐘輪詢一次服務器(一個javascript函數可以做到這一點,或者你可以有一個假設的iframe,其中的refresh-content設置爲每n分鐘調用一次虛擬asp頁面)。

這是更好的(雖然輪詢可以在您的服務器上徵稅,不要頻繁輪詢),因爲如果您將會話超時設置爲非常高(或無限...)值,您將最終使用asp崩潰與內存不足錯誤(我猜應用程序池將重新啓動)。

當用戶在超時過期之前調用應用程序上的任何asp頁面時,會話保持活動狀態。如果你的用戶關閉了它的瀏覽器,你的應用程序將不會得到通知,asp將不得不等待超時才能清理內存。這意味着會話將在用戶離開後的n分鐘內保留在內存中,n表示超時。

有沒有必要有一個無限的會話(它可以通過輪詢解決)和調整超時參數將使您的應用程序更脆弱。

如果你想存儲信息很長一段時間(基本上,對於你的應用程序的整個生命週期),你最好使用Application對象,這是一個字典就像Session,但是是一個單例,可以通過訪問服務器上的任何人。