日期:2011-09-04  浏览次数:20945 次

我的global.asa文件如下:
<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
'Session_OnStart 当客户首次运行 ASP 应用程序中的任何一个页面时运行
'Session_OnEnd 当一个客户的会话超时或退出应用程序时运行
'Application_OnStart 当任何客户首次访问该应用程序的首页时运行
'Application_OnEnd 当该站点的 WEB 服务器关闭时运行

Sub Application_OnStart

VisitorCountFilename = Server.MapPath ("../VisitCount.txt")
Set FileObject = Server.CreateObject("Scripting.FileSystemObject")
Set Out= FileObject.OpenTextFile (VisitorCountFilename, 1, FALSE, FALSE)
Application("visitors") = Out.ReadLine
Application("NowPeopleNumber")=0
Application("VisitorCountFilename") = VisitorCountFilename
End Sub
'=========================================================
SUB Application_OnEnd
Set FileOutObject = Server.CreateObject("Scripting.FileSystemObject")
Set Out= FileOutObject.CreateTextFile (Application("VisitorCountFilename"), TRUE,FALSE)
Out.WriteLine(application("visitors"))
End Sub
'=========================================================
Sub Session_OnStart
Session.Timeout = 30
Application("visitors") = Application("visitors") + 1
Application("NowPeopleNumber")=Application("NowPeopleNumber")+1
Session("ID")=Session.SessionID
Session("UserName")=0 '不存在
End Sub
'=========================================================
Sub Session_OnEnd
Application("NowPeopleNumber")=Application("NowPeopleNumber")-1
End Sub
</SCRIPT>
这样的话总的浏览人数将保存在VisitCount.txt文件中,我觉得Application("NowPeopleNumber")中应该保存了
在线人数,在主页中把它显示出来就可以,但这样做我发现当我关闭浏览器在打开主页时候
在线人数增加了1。也就是说Session_OnEnd没有被执行。是什么原因呢?还有别的方法可以得到
在线人数吗?首次发文章,谢谢大家了。