将sessionstate设置为sqlserver的用户计数

时间:2010-10-25 12:10:23

标签: asp.net

我想不知道。我的网站上的活跃用户,其中sessionstate设置为sqlserver。

如果一个人关闭他的浏览器然后如何维持用户数呢?

任何帮助表示感谢。

提前致谢

2 个答案:

答案 0 :(得分:0)

您使用的是什么网络服务器代码?如果您使用的是ASP.NET,则可以在Global.asax文件中增加Session_Start中的变量,然后在Web应用程序在Application_End中关闭时将该变量写入SQL Server。确保锁定变量,因为如果两个同时连接进入,两个线程可能同时访问变量。不确定这是否回答了您的问题。我看到你有“活跃”用户这个词。如果这意味着当前打开的那些,则可以在Session_End中递减计数器。然后,在用户关闭浏览器后的某个时间,该用户的会话将超时。当您关闭浏览器时,您无法正确递减,因为您的Web服务器将知道这一点。

答案 1 :(得分:0)

如果您使用SQL Server作为会话状态,则使用dateabase ASPState ,并且它具有以下表格。

  1. ASPStateTempSessions
  2. ASPStateTempApplications
  3. 和几个存储过程和作业。你可以探索它来理解。

    所以如果你只有一个应用程序,那么它只是一个简单的查询。

    select count(*) as NumberOfSessions from ASPStateTempSessions
    

    如果在连接字符串中使用Application Name配置了多个应用程序,则需要在表ASPStateTempSessions中使用sessionid,所以

    select count(*) as NumberOfSessions from ASPStateTempSessions where sessionid='%YOUR-APP-ID'