前几天做个.net的项目,需要统计网站在线人数,因此用到了globle.asa文件,里面的设置直接从网上找来的。但后来发现一个问题:用户登录后总是会在很短的时间内自动退出,很显然是session丢失了才退出的,但服务器一般默认session失效时间是20分钟,没道理会这么快失效,一开始不知道怎么回事,以为是IIS的设置有问题,但反复查找也没有结果,设置都是正确的。然后又查找web.config文件相关的设置,也没有问题,这就奇怪了,网上到处找资料也没看到这种奇怪问题的解决办法。最后仔细回忆了一下,以往开发的项目里也很少会出现这样的问题,唯一不同的就是多了个统计在线人数的功能,问题应该是出在这里,打开globle.asa文件,仔细一看,发现了问题所在,其中一段的程序如下:
Sub Session_OnStart()
Session.TimeOut=1
Application.Lock
Application("Visitors")=Application("Visitors")+1
Application("TotalVisitors") = Application("TotalVisitors")+1
Application.UnLock
End Sub
这段程序中设置了session的过期时间是1分钟,唉,真是马虎,特此记录,引以为戒。