4

使用 StateServer 时如何找出活跃用户的数量?也可以查询 StateServer 并检索 Session State 中的内容吗?

我知道如果您使用 SqlServer 作为后备存储,这一切都是可能的,但我希望它们在内存中。

4

2 回答 2

7

状态服务器中的活动会话数可以通过运行状态服务器的服务器上的性能计数器轻松查看。这并不直接等同于活跃用户(由于会话超时时间)

活动会话的计数器是:“Asp.net”-“状态服务器会话活动”

作为参考,这里是所有与状态服务器相关的性能计数器,来自http://msdn.microsoft.com/en-us/library/fxk122b4.aspx

State Server Sessions Abandoned 已明确放弃的用户会话数。这些是由特定用户操作(例如关闭浏览器或导航到另一个站点)结束的会话。此计数器仅在运行状态服务器服务 (aspnet_state) 的计算机上可用。

State Server Sessions Active 当前活动的用户会话数。此计数器仅在运行状态服务器服务 (aspnet_state) 的计算机上可用。

State Server Sessions Timed Out 由于用户不作为而变为非活动状态的用户会话数。此计数器仅在运行状态服务器服务 (aspnet_state) 的计算机上可用。

State Server Sessions Total 在进程生命周期内创建的会话数。此计数器是 State Server Sessions Active、State Server Sessions Abandoned 和 State Server Sessions Timed Out 的总值。此计数器仅在运行状态服务器服务 (aspnet_state) 的计算机上可用。

于 2010-01-20T21:53:36.427 回答
0

跟踪用户数量需要在应用程序级别完成,而不是会话级别。

您应该能够通过以下内容查看当前会话中的内容:

StringBuilder builder = new StringBuilder();
foreach ( String key in Session.Contents ) {
    builder.AppendFormat("{0}: {1}<br />", key, Session[key]);
}
Response.Write(builder.ToString());
于 2008-10-29T22:33:25.270 回答