2013-10-11 177 views
0

我有一個網站託管在活動服務器上,我的會話不斷丟失。什麼會導致Application_Start導致會話丟失?

我已經添加了一些日誌記錄到我的global.asax來檢查應用程序何時開始和結束以及會話開始和結束的位置以及是否存在應用程序錯誤。

當我導航到我的網站時,應用程序在我登錄會話開始並存儲我的電子郵件和用戶標識後啓動。之後,我只是在我的網站周圍瀏覽了一分鐘左右,然後我自動註銷了。自動註銷是會話爲空的結果,然後我放棄它。

以下是我上面的測試日誌。

[11:4:57:802] Application has started 
[11:4:58:872] Session has started 
[11:4:58:890] Set Email Sessions 
[11:4:59:61] Set PracticeId and PractitionerId Sessions 
[11:6:49:838] Application has started 
[11:6:5:391] Session has ended 
[11:6:5:445] Application has ended 
[11:6:8:208] Session has started 
[11:6:8:338] Abandon Session 
[11:6:8:343] Session has ended 

我已經測試過,這是不特定鏈接的問題和運行的本地主機上的網站時,這不會發生。我失去了我的會話,因爲應用程序啓動被我開除,然後將會話設置爲空。

什麼可能導致application_start被隨機觸發?

回答

0

您的IIS AppPool具有控制應用程序回收的配置選項。

例如:一個可配置的時間段沒有任何活動,當內存使用閾值每天都在突破,在特定的時間後,...

看看你的應用程序池的配置。

自動註銷是會話爲空,然後我放棄它的結果。

對於自動註銷,如果您使用的是表單認證,那麼您不需要僅僅因爲您的會話已過期而自動註銷。您仍將擁有表單身份驗證Cookie,其過期完全獨立於會話過期。

並且在一個設計良好的應用程序中,只需通過從持久存儲(通常是數據庫)加載它就可以重新生成Session中的任何內容。

相關問題