ASP.NET - 会话超时

时间:2009-10-22 09:52:47

标签: asp.net iis asp.net-2.0

在我的应用程序的web.config文件中,<sessionState> 我已设置timeout="60"(以分钟为单位),但会话状态 我的应用程序中的变量似乎在大约1分钟内到期。 知道是什么原因造成的吗?

2 个答案:

答案 0 :(得分:1)

是。

会话超时也由IIS指定和控制(尽管有重叠的课程)。在IIS 6.0中,还需要检查IIS管理器中的以下位置(虚拟目录的属性):

  • ASP.net标签&gt;编辑配置&gt;验证标签&gt; Cookie超时
  • ASP.net标签&gt;编辑配置&gt; “状态管理”选项卡&gt;会话超时

将所有这些设置为相同的值,为我解决了问题。

编辑:显然,之前列出的第一个选项与它无关。这意味着,两个选项中的第一个现在是您修复会话超时的地方。这可能不是你的会话超时,但认证到期。

或者另一种可能性是重新启动工作进程,或者重新启动应用程序。还有待研究的事情。

答案 1 :(得分:1)

如果您在“proc”中存储会话状态,那么每次应用程序池回收时您都可以松开会话(这可能会在内存不足的服务器上发生很多)。您可以尝试使用State Server或SQL Server存储会话状态“out of proc”。

请参阅PRB: Session Data Is Lost When You Use ASP.NET InProc Session State Mode