3
我相信我已經研究了所有相關的計算器問題以及其他網絡資源,但我仍然是在使用了約20個用戶全天候的Web應用程序,每天十次以上的有這個問題時間。提供的票證已過期
Event code: 4005
Event message: Forms authentication failed for the request. Reason: The ticket supplied has expired.
用戶說,他們所得到註銷早於60分鐘的超時。 (應用程序中的某些表單需要很長時間才能填寫,用戶正在面試人員和寫筆記,這可能需要很長時間,因此,如果您在緩慢輸入筆記20-30分鐘後保存表單,日誌你來的時候,你提交表單)
一些細節:
- 這是一個單一的Web服務器正在運行IIS 7.5,而不是形式(該 數據庫是在另一臺電腦)。所有的服務器都虛擬機
- IIS會話狀態 被設置爲「處理中」,並且在cookie設置超時時間爲60 分鐘。
- 應用程序池有空閒超時時間設置爲60分鐘和 回收間隔29小時
- 我沒有看到在事件日誌中的任何錯誤,這些「票到期」在此之前,指示工人 進程失敗或消息應用程序池已被回收。
終於從web.config中的一個片段:
<authentication mode="Forms">
<forms loginUrl="~/Account/Login.aspx" timeout="60" protection="All" slidingExpiration="true" />
</authentication>
任何幫助追查這些會話超時,將不勝感激。
我能夠通過讓會話坐了31分鐘和59之間重現此問題我自己。所以也許是因爲誤解滑動到期的原因(我仔細閱讀過)。實現會話超時策略的最佳方式是,用戶從最後一次觸摸服務器總是獲得60分鐘的時間? – royappa
您可能沒有設置'machineKey',並且關鍵是池回收中的更改。 - 同時檢查web.config上'forms'屬性上是否放置了'slidingExpiration =「true」'。 – Aristos