kuangjingqiang 发表于 2008-8-9 18:24

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

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") %>

在服务器中运行,但统计不了在线人数。
请问为什么会这样呢?

tianyu123 发表于 2008-8-9 19:59

global.sas

后缀都写错了

正确为:global.asa

yangzeng 发表于 2008-8-9 23:05

application_onend过程都丢了代码了,问题好多哟

kuangjingqiang 发表于 2008-8-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.w3.org/TR/html4/loose.dtd">
<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>



还有,本人是一个菜鸟,请不要见怪,谢谢!

页: [1]

编程论坛