application计数出错问题!

zou_cz 2006-06-12 11:55:20
在global.asa文件中采用application对象统计访问人数,网站运行一周左右application计数总是
出现减少的现象,比如3百万访问人数变成几万,那位高人能指点指点。

global.asa文件代码如下,操作系统2003+iis6.0
<script language="vbscript" RunAt="server">
Sub Application_OnStart
Application("Count")=0
VisitorCountFilename = Server.MapPath ("jishu.txt")
Set FileObject = Server.CreateObject("Scripting.FileSystemObject")
Set Out= FileObject.OpenTextFile (VisitorCountFilename, 1, FALSE, FALSE)
Application("visitors") = Out.ReadLine
Application("VisitorCountFilename") = VisitorCountFilename
End Sub

Sub Session_OnStart
Application.Lock
Application("Count")=Application("Count")+1
Application("visitors") = Application("visitors") + 1
Application.UnLock
End Sub

Sub Session_OnEnd
Application.Lock
Application("Count")=Application("Count")-1
Application.UnLock
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
</script>
...全文
155 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
哈哈鬼 2006-11-23
  • 打赏
  • 举报
回复
路过
samjuly 2006-06-13
  • 打赏
  • 举报
回复
application("visitors")这个值一直保存在内存中,当iis崩溃或者系统意外down了,前者重起iis,后者重新启动电脑,application_onend里面的东西没有执行的机会,所以application("visitors")没办法记录到jishu.txt
samjuly 2006-06-12
  • 打赏
  • 举报
回复

在application_onstart里从jishu.txt读出application("visitors")的值
在session_onstart里面application("visitors")=application("visitors")+1,并且写入jishu.txt
也就是把你在application_onend里面的东西放到session_onstart里面,虽然每个用户来浏览网站的时候都需要写一次jishu.txt,但不怕服务器突然崩溃以后,application里面的数据完全丢失
  • 打赏
  • 举报
回复
在application只增不减不怕系统崩了啊??
zou_cz 2006-06-12
  • 打赏
  • 举报
回复
能指点下失败的原因么?
一直不知道为什么失败。
coder1 2006-06-12
  • 打赏
  • 举报
回复
帮顶
moodboy1982 2006-06-12
  • 打赏
  • 举报
回复
强烈不建议用application来做计数器。
失败率为50%

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧