我在我的開發框(Vista/IIS7上的.NET 2.0)上運行ASP.NET網站。 global.asax.cs中的Session_Start方法記錄每個對文件(log4net)的調用。 Session_End方法還會記錄每個呼叫。ASP.NET:大量具有相同會話ID的Session_Start
我正在使用InProc會話狀態,並將會話超時設置爲5分鐘(以避免等待20分鐘)。
我打了網站,等了5分鐘我看到Session_End日誌單元。然後我F5的網站。瀏覽器仍然有會話cookie並將其發送到服務器。 Session_Start被調用,並使用相同的會話ID創建一個新的會話(順便說一句:我需要這是相同的會話ID,因爲它用於存儲數據在數據庫中)。
結果: 每次我在先前結束的會話上點擊F5時,都會調用Session_Start方法。
當我打開不同的瀏覽器時,Session_Start方法只被調用一次。然後5分鐘後Session_End每個F5都會導致Session_Start方法執行。
任何人都可以解釋爲什麼發生這種情況?
更新: 會話超時後,所有後續請求都會話開始&會話結束。所以最後我的問題是:爲什麼關於這些後續請求的會話立即關閉?
2010-02-09 14:49:08,754 INFO Global.asax[7486] [(null)] - Session started. SID=nzponumvf1hbaniverffp4mq host=127.0.0.1
2010-02-09 14:49:08,754 INFO Global.asax[7486] [nzponumvf1hbaniverffp4mq] - Request start: GET http://localhost:80/js/settings.js
2010-02-09 14:49:08,756 INFO Global.asax[7486] [(null)] - Session ended. SID=nzponumvf1hbaniverffp4mq
2010-02-09 14:49:08,760 INFO Global.asax[7486] [(null)] - Session started. SID=nzponumvf1hbaniverffp4mq host=127.0.0.1
2010-02-09 14:49:08,760 INFO Global.asax[7486] [nzponumvf1hbaniverffp4mq] - Request start: GET /css/package.aspx?name=core
2010-02-09 14:49:08,761 INFO Global.asax[7486] [(null)] - Session ended. SID=nzponumvf1hbaniverffp4mq
2010-02-09 14:49:08,762 INFO Global.asax[7486] [(null)] - Session started. SID=nzponumvf1hbaniverffp4mq host=127.0.0.1
2010-02-09 14:49:08,762 INFO Global.asax[7486] [nzponumvf1hbaniverffp4mq] - Request start: GET /js/package.aspx?name=all
2010-02-09 14:49:08,763 INFO Global.asax[7486] [(null)] - Session ended. SID=nzponumvf1hbaniverffp4mq
2010-02-09 14:49:08,763 INFO Global.asax[7486] [(null)] - Session started. SID=nzponumvf1hbaniverffp4mq host=127.0.0.1
2010-02-09 14:49:08,763 INFO Global.asax[7486] [nzponumvf1hbaniverffp4mq] - Request start: GET /css/package.aspx?name=rest
2010-02-09 14:49:08,764 INFO Global.asax[7486] [(null)] - Session ended. SID=nzponumvf1hbaniverffp4mq
2010-02-09 14:49:08,764 INFO Global.asax[7486] [(null)] - Session started. SID=nzponumvf1hbaniverffp4mq host=127.0.0.1
2010-02-09 14:49:08,765 INFO Global.asax[7486] [nzponumvf1hbaniverffp4mq] - Request start: GET /css/package.aspx?name=vacation
2010-02-09 14:49:08,765 INFO Global.asax[7486] [(null)] - Session ended. SID=nzponumvf1hbaniverffp4mq
web.config中相關章節:
<system.web>
<compilation debug="true" />
<sessionState timeout="2" regenerateExpiredSessionId="false" />
</system.web>
這不正是你剛纔所描述的和預期會發生什麼? – Lazarus 2010-02-09 13:22:39
不,我期望在Session_End後只有1個Session_Start,而不是10個Session_Start的當我按F5 10次(或按順序點擊10個鏈接) – Jaap 2010-02-09 13:48:03
在請求被服務後立即調用Session_End方法。 – Jaap 2010-02-09 13:51:08