【发布时间】:2009-06-06 04:04:40
【问题描述】:
我正在使用带有 IIS 6.0 的 ASP Classic (1.1)。有没有设置会话永不过期的选项?
提前致谢, 乔治
【问题讨论】:
标签: session iis asp-classic
我正在使用带有 IIS 6.0 的 ASP Classic (1.1)。有没有设置会话永不过期的选项?
提前致谢, 乔治
【问题讨论】:
标签: session iis asp-classic
Session.Timeout=5
这意味着它会在 5 分钟内超时。我不认为您可以将其设置为无穷大,但您可以将其设置为大约很大的数字。
【讨论】:
您可以以分钟为单位指定 Session.Timeout 值。 或者让您的页面每 n 分钟轮询一次服务器(一个 javascript 函数可以做到这一点,或者您可以设置一个带有 refresh-content 的虚拟 iframe 以每 n 分钟调用一个虚拟 asp 页面)。
这样会更好(尽管轮询会对您的服务器造成负担,但不要太频繁地轮询),因为如果您将会话超时设置为非常高(或无限...)的值,您最终会导致 asp 崩溃出现内存不足错误(我猜应用程序池将重新启动)。
当用户在超时到期之前调用您应用程序上的任何 asp 页面时,会话将保持活动状态。如果您的用户关闭其浏览器,您的应用程序将无法收到通知,asp 将不得不等待超时来清理内存。这意味着会话将在用户离开后在内存中保留 n 分钟,n 是超时时间。
不需要无限会话(可以通过轮询来解决),使用超时参数进行调整将使您的应用程序更加脆弱。
如果您想长时间存储信息(基本上,在您的应用程序的整个生命周期中),您最好使用 Application 对象,它是一个字典,就像 Session 一样,但它是一个单例,任何人都可以访问在服务器上。
【讨论】: