我想不知道。我的网站上的活跃用户,其中sessionstate设置为sqlserver。
如果一个人关闭他的浏览器然后如何维持用户数呢?
任何帮助表示感谢。
提前致谢
答案 0 :(得分:0)
您使用的是什么网络服务器代码?如果您使用的是ASP.NET,则可以在Global.asax文件中增加Session_Start中的变量,然后在Web应用程序在Application_End中关闭时将该变量写入SQL Server。确保锁定变量,因为如果两个同时连接进入,两个线程可能同时访问变量。不确定这是否回答了您的问题。我看到你有“活跃”用户这个词。如果这意味着当前打开的那些,则可以在Session_End中递减计数器。然后,在用户关闭浏览器后的某个时间,该用户的会话将超时。当您关闭浏览器时,您无法正确递减,因为您的Web服务器将知道这一点。
答案 1 :(得分:0)
如果您使用SQL Server作为会话状态,则使用dateabase ASPState ,并且它具有以下表格。
和几个存储过程和作业。你可以探索它来理解。
所以如果你只有一个应用程序,那么它只是一个简单的查询。
select count(*) as NumberOfSessions from ASPStateTempSessions
如果在连接字符串中使用Application Name
配置了多个应用程序,则需要在表ASPStateTempSessions中使用sessionid,所以
select count(*) as NumberOfSessions from ASPStateTempSessions where sessionid='%YOUR-APP-ID'