经典ASP:如何列出激活的会话?

问题描述:

有没有办法在传统的ASP中获得激活的会话列表?经典ASP:如何列出激活的会话?

我想限制同时激活的会话数量。

+1

你有服务器的控制权?我只问,因为如果你有选择,你会发现走这条路很容易。 – AnonJr 2009-02-04 12:50:25

这里是一个很好的文章,显示的方式做到这一点:Active User Count Without Global.asa by Josh Painter

我想你必须改变一些细节,但是这是你能解决这个问题的方式。作者不使用global.asa。

一个更简单的方法是,将全局.asa中的Sesssion_OnStartSession_OnEnd事件挂接,并从作为应用程序变量实现的会话列表中添加/删除项目。

如果你只是想在计数会议,你可以简单地做这种方式:

Sub Session_OnStart 
    Application.Lock 
    Application("count") = Application("count") + 1 
    Application.Unlock 
End Sub 

Sub Session_OnEnd 
    Application.Lock 
    Application("count") = Application("count") - 1 
    If Application("count") < 0 then ' Could only happen if some other function interfers 
     Application("count")=0 
    End If 
    Application.Unlock 
End Sub 

在你的ASP文件

<% 
Response.Write "There are currently " & Application("count") & "active sessions>" 
%> 
+0

找不到404页面。也许添加信息或在archive.org中找到它? – 2015-06-10 15:07:24

您不能从另一个访问一个会话,所以没有内置的方法来获取所有活动会话的列表。但是,您可以在global.asa中使用Session_OnStartSession_OnEnd通过将相关会话信息保存到Application对象,日志文件,数据库等(取决于您对信息的确切操作)来跟踪会话。

我们倾向于跟踪Application对象中活动会话的数量,以便大致了解在特定时间有多少人正在使用网站(当然,请记住,人们通常会离开该网站很久之前他们的会议超时)。这不是100%准确,但足够接近当前活动的指南。

如果您只想要会话数,您还可以使用Perfmon跟踪Active Server Pages性能对象的Sessions Current计数器(和其他相关计数器)。显然,这假定访问服务器,可能不是你想要的在这种情况下。

有关某些选项的详细信息,请尝试以下文章:How do I count the number of current users/sessions?(存档版本)

+0

该链接不起作用(转到着陆页)。 – 2015-06-10 15:07:47