在我的应用程序的web.config
文件中,<sessionState>
我已设置timeout="60"
(以分钟为单位),但会话状态
我的应用程序中的变量似乎在大约1分钟内到期。
知道是什么原因造成的吗?
答案 0 :(得分:1)
是。
会话超时也由IIS指定和控制(尽管有重叠的课程)。在IIS 6.0中,还需要检查IIS管理器中的以下位置(虚拟目录的属性):
将所有这些设置为相同的值,为我解决了问题。
编辑:显然,之前列出的第一个选项与它无关。这意味着,两个选项中的第一个现在是您修复会话超时的地方。这可能不是你的会话超时,但认证到期。
或者另一种可能性是重新启动工作进程,或者重新启动应用程序。还有待研究的事情。
答案 1 :(得分:1)
如果您在“proc”中存储会话状态,那么每次应用程序池回收时您都可以松开会话(这可能会在内存不足的服务器上发生很多)。您可以尝试使用State Server或SQL Server存储会话状态“out of proc”。
请参阅PRB: Session Data Is Lost When You Use ASP.NET InProc Session State Mode