我相信我已经研究了所有相关的 stackoverflow 问题以及其他 Web 资源,但是在一个 24x7 的 Web 应用程序中每天仍然有十几次或更多次这个问题,一次大约有 20 个用户使用。
Event code: 4005
Event message: Forms authentication failed for the request. Reason: The ticket supplied has expired.
用户说他们在 60 分钟超时之前就被注销了。(应用中的一些表格需要很长时间才能填写。用户正在采访人并写笔记,这可能需要很长时间。所以如果你在慢慢输入笔记20-30分钟后保存表格,它会很沮丧提交表单时将您注销。)
一些细节:
- 这是运行 IIS 7.5 的单个 Web 服务器,而不是表单(数据库在另一个盒子上)。所有服务器都是虚拟机
- IIS 会话状态设置为“进行中”,在 cookie 设置下超时为 60 分钟。
- 应用程序池的空闲超时设置为 60 分钟,回收间隔设置为 29 小时
- 在这些指示工作进程失败或应用程序池被回收的“票证过期”消息之前,我没有在事件日志中看到任何错误。
最后是 web.config 的一个片段:
<authentication mode="Forms">
<forms loginUrl="~/Account/Login.aspx" timeout="60" protection="All" slidingExpiration="true" />
</authentication>
任何帮助追踪这些会话超时将不胜感激。