3

我相信我已经研究了所有相关的 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分钟后保存表格,它会很沮丧提交表单时将您注销。)

一些细节:

  1. 这是运行 IIS 7.5 的单个 Web 服务器,而不是表单(数据库在另一个盒子上)。所有服务器都是虚拟机
  2. IIS 会话状态设置为“进行中”,在 cookie 设置下超时为 60 分钟。
  3. 应用程序池的空闲超时设置为 60 分钟,回收间隔设置为 29 小时
  4. 在这些指示工作进程失败或应用程序池被回收的“票证过期”消息之前,我没有在事件日志中看到任何错误。

最后是 web.config 的一个片段:

<authentication mode="Forms">
<forms loginUrl="~/Account/Login.aspx" timeout="60" protection="All"     slidingExpiration="true" />
</authentication>

任何帮助追踪这些会话超时将不胜感激。

4

1 回答 1

1

我使用 jquery 空闲计时器来跟踪用户不活动并在会话超时之前显示警告。还允许用户通过进行 Ajax 调用来更新会话。仅供参考,您可以参考这些链接

链接 1

链接2

于 2012-11-05T02:24:03.587 回答