注册 登录
编程论坛 ASP技术论坛

ASP关于用global.sas文件统计在线人数的问题

kuangjingqiang 发布于 2008-08-09 18:24, 1125 次点击
global.sas代码如下:
<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
 Sub Application_OnStart
Application("ActiveUsers") = 0
End Sub
Sub   Application_OnEnd()
        
End   Sub

Sub Session_OnStart
Session.Timeout = 20
Application.Lock
Application("ActiveUsers") = Application("ActiveUsers") + 1
Application.UnLock
End Sub
Sub Session_OnEnd
Application.Lock
Application("ActiveUsers") = Application("ActiveUsers") - 1
Application.UnLock
End Sub

</SCRIPT>


在新的asp中引用代码如下:
<% =application("ActiveUsers") %>

在服务器中运行,但统计不了在线人数。
请问为什么会这样呢?
4 回复
#2
tianyu1232008-08-09 19:59
global.sas
后缀都写错了

正确为:global.asa
#3
yangzeng2008-08-09 23:05
application_onend过程都丢了代码了,问题好多哟
#4
kuangjingqiang2008-08-10 11:06
问题,我已经自己搞清了。。
不是我写错asa,而是我在论坛打错字而已。。

还有,不是有没写 application_onend 的问题,因为,只要当服务器运行时,就运行application_onstart ,而只有,和仅有,服务器关闭时,才运行application_onend的过程,换句话说:就是application_onend 写不写也没关系,因为根本就没机会运行它!除非你的服务器关闭了!!

我自己已发现,和找出问题了。。
根本问题是,global.asa 由于这个文件比较特殊,所以,如果用DW写的话,开头会生成一些DW的代码,将这些代码去掉,程序就可以正常运行!
还有一个要注意的地方,这个文件必须要放到你 服务器 跟目录下,否则写了等于没写。。。一定要放在跟目录下!!

还有,这个程序还不是很完善!

这是详细的程序:
global.asa:<script language=vbscript runat=Server>
    sub Application_Onstart
      Application.lock
      application("all")=0
      application("online")=0
          application("check")=0
      application.unlock
      
    end sub
</script>
<script language=vbscript runat=Server>
    sub Application_Onend
      Application.lock
      application("all")=0
      application("online")=0
      application.unlock
    end sub
</script>
<script language=vbscript runat=Server>
    sub Session_Onstart
    application.lock
    application("all")=application("all")+1
    application("online")=application("online")+1
    application.unlock
    end sub
</script>
<script language=vbscript runat=Server>
    sub Session_Onend
    application.lock
    application("online")=application("online")-1
        application("check")=application("check")+1
    application.unlock
    end sub
</script>

check.asp:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>检查在线人数</title>
</head>

<body>
<% session.timeout=1 %>
当前在线人数:<% =application("online") %>
本网站总访问人数:<% =application("all") %>
其中执行会话结束事件<% =application("check") %>次
</body>
</html>



还有,本人是一个菜鸟,请不要见怪,谢谢!
#5
twtrwr2011-04-02 21:26
给我很大的启示,,我正好遇到这个问题,,呵呵
1