我在我的開發框(Vista/IIS7上的.NET 2.0)上運行ASP.NET網站。 global.asax.cs中的Session_Start方法記錄每個對文件(log4net)的調用。 Session_End方法還會記錄每個呼叫。大量具有相同會話ID的Session_Start
我正在使用InProc會話狀態,並將會話超時設置爲5分鐘(以避免等待20分鐘)。
我打了網站,等了5分鐘我看到Session_End日誌單元。然後我F5的網站。瀏覽器仍然有會話cookie並將其發送到服務器。 Session_Start被調用,並使用相同的會話ID創建一個新的會話(順便說一句:我需要這是相同的會話ID,因爲它用於存儲數據在數據庫中)。
結果: 每次我在先前結束的會話上點擊F5時,都會調用Session_Start方法,執行請求並立即調用Session_End方法。
當我打開不同的瀏覽器時,Session_Start方法只被調用一次。然後在5分鐘後Session_End每個F5都會導致執行Session_Start/request/Session_End序列。
web.config中相關章節:
<system.web>
<compilation debug="true" />
<sessionState timeout="2" regenerateExpiredSessionId="false" />
</system.web>
我需要關於這個問題的幫助,但是在那些我沒有搞砸會話的網站上。隨機完成,該網站將爲每位具有一個會話ID的用戶每天進行數百次的Session_Start數據庫事務處理。沒有警告,隨機的網站受到影響,並且沒有答案。 – 2010-04-30 19:00:51
看看[這個鏈接](http://stackoverflow.com/a/11375003/779408)。那裏有真正的解決方案。 – breceivemail 2012-07-08 05:38:09