建了个global.asa,通过文件(count.txt)纪录在线人数和访问人数。结果发现Application_OnStart事件更本没触发!

Gujianda 2005-10-24 11:08:53
页面文件 Index.asp 如下:
<% @language=vbscript %>
<html>
<head>
<title>Web编程</title>
</head>
<body>
<p align=center><font size="12" color="0000FF">欢迎来到我的《WEB编程》天地</p>
<p align=center>在线人数:<% =application("online") %></p>
<p align=center>访问人数:<% =application("countall") %></p>
</body>
</html>

脚本文件global.asa如下:
<script language=vbscript runat=server>

sub application_onstart
application.lock
countfile=server.mappath("count.txt")
set fileObject=server.createobject("scripting.filesystemobject")
set outfile=fileobject.opentextfile(countfile,1,false,false)
application("counall")=outfile.readline
outfile.close
application.unlock
end sub


sub session_onstart
application.lock
application("online")=application("online")+1
application("countall")=application("countall")+1
application.unlock
end sub

sub session_onend
application.lock
application("online")=application("online")-1
application.unlock
end sub

sub application_onend
application.lock
set fileObject=server.createobject("scripting.filesystemobject")
set outfile=fileobject.opentextfile(countfile,1,false,false)
outfile.writeline(application("countall"))
outfile.close
application.unlock
end sub
</script>
...全文
250 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Gujianda 2005-10-25
  • 打赏
  • 举报
回复
结贴:
=====================================================
一、不改写计数文件的原因找到:
由于Application_OnEnd事件中不支持Server.mappath方法,故计数文件count.txt的物理路径
应该在Application_OnStart事件中用一个“办法”保存,我现在的办法是用Application对象保存:
1,在_OnStart事件中加一句:Application("F_Name")=countfile
2,在_OnEnd 事件中加一句:countfile=Application("F_Name")
3,模拟触发_OnEnd事件办法:改写global.asa文件就行(我的办法)
======================================================
二、所谓"拷贝入Win2000 Server版"被"忽略Application()参数"的原因:
就是[zhangking(网眼-SOGO99.COM)]所言:“要放在虚拟文件夹下”
看来对“虚拟文件夹”也是需要理解透彻的,哈哈。
sp_help 2005-10-25
  • 打赏
  • 举报
回复
这个我也不会哦
zhangking 2005-10-24
  • 打赏
  • 举报
回复
还要注意 global.asa 要放在虚拟文件夹下
csecong 2005-10-24
  • 打赏
  • 举报
回复
是不是只触发了一次
Gujianda 2005-10-24
  • 打赏
  • 举报
回复
1,count.txt文件没有被改写的原因似乎是Application_OnEnd 事件没触发。
到底是什么原因,请朋友们指点排查思路。
2,Win2000 Server版中Application("参数")被"忽略"的原因又有什么可能呢?
Gujianda 2005-10-24
  • 打赏
  • 举报
回复
现在才龙清楚,
1,首问中提到的“更本没触发”是在Win2000 Server机上试验的结果。
在我的机器(Win2000 Pro)上部分功能得以实现:
动态显示访问人数,但磁盘文件内容没有真正改变。

2,同样的文件,拷贝到Win2000 Server机上,下面的内容就更本不显示!
<% =Application("online") %>
Gujianda 2005-10-24
  • 打赏
  • 举报
回复
刚才又试验了一下,访问Index.asp时,global.asa文件中Application对象的"online"与"countall"参数开始递增,表现为在线人数与访问人数再增加。但是文件count.txt的内容没变。

附:
global.asa文件中倒数第六行:
原:Set OutFile=FileObject.OpenTextFile(countfile,1,false,false)
已经改成:
现:Set OutFile=FileObject.CreateTextFile(countfile,True,false)
dh20156 2005-10-24
  • 打赏
  • 举报
回复
站点根目录
Gujianda 2005-10-24
  • 打赏
  • 举报
回复
不好意思,什么叫“虚拟文件夹”?
当前文件夹不行吗?

28,406

社区成员

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

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