【发布时间】:2009-10-23 02:53:22
【问题描述】:
在我的应用程序的web.config 文件中,在<sessionState>
我设置了timeout="60"(以分钟为单位)的部分,但会话状态
我的应用程序中的变量似乎在大约 1 分钟后到期。
知道是什么原因造成的吗?
【问题讨论】:
标签: asp.net iis asp.net-2.0
在我的应用程序的web.config 文件中,在<sessionState>
我设置了timeout="60"(以分钟为单位)的部分,但会话状态
我的应用程序中的变量似乎在大约 1 分钟后到期。
知道是什么原因造成的吗?
【问题讨论】:
标签: asp.net iis asp.net-2.0
是的。
会话超时也由 IIS 指定和控制(尽管当然有重叠)。在 IIS 6.0 中,您还需要检查 IIS 管理器中的以下位置(虚拟目录的属性):
将所有这些设置为相同的值,为我解决了这个问题。
编辑:显然之前列出的第一个选项与它无关。这意味着,这两个选项中的第一个现在是您修复会话超时的地方。可能不是您的会话超时,而是身份验证到期。
或者另一种可能是工作进程重新启动,或者应用程序重新启动。还有要调查的事情。
【讨论】:
如果您将会话状态存储在“进程中”,那么每次应用程序池回收时,您都可能会丢失会话(这在内存不足的服务器上经常发生)。您可以尝试使用 State Server 或 SQL Server 存储会话状态“out of proc”。
见PRB: Session Data Is Lost When You Use ASP.NET InProc Session State Mode
【讨论】: