如何设置会话永远不会在ASP中过期

时间:2009-06-06 04:04:41

标签: session iis asp-classic

我在IIS 6.0中使用ASP classic(1.1)。是否有任何选项可以设置会话永不过期?

提前谢谢, 乔治

2 个答案:

答案 0 :(得分:3)

Session.Timeout=5

意味着它会在5分钟内超时。我不认为您可以将其设置为无穷大,但您可以将其设置为大约数字。

答案 1 :(得分:2)

您可以以分钟为单位指定Session.Timeout值。 或者让你的页面每隔n分钟轮询服务器一次(javascript函数会这样做,或者你可以有一个虚拟iframe,刷新内容设置为每隔n分钟调用一个虚拟asp页面)。

这样更好(尽管轮询可能会对您的服务器产生负担,但不要经常轮询)因为如果将会话超时设置为非常高(或无限......)的值,您最终会崩溃内存不足错误(我想应用程序池将重新启动)。

当用户在超时到期之前调用应用程序上的任何asp页面时,会话保持活动状态。如果您的用户关闭其浏览器,则无法通知您的应用程序,并且asp必须等待超时来清理内存。这意味着会话将在用户离开后保留在内存中n分钟,n为超时。

没有必要进行无限会话(可以通过轮询来解决),并且使用timeout参数进行调整会使您的应用程序更加脆弱。

如果你想长时间存储信息(基本上,你的应用程序的整个生命周期)你最好使用Application对象,这是一个像Session一样的字典但是是一个单例,任何人都可以访问它在服务器上。