如何在使用StateServer时找出活动用户数?还可以查询StateServer并检索会话状态中的内容吗?
我知道如果你使用SqlServer作为后备存储,这是可能的,但我希望它们在内存中。
答案 0 :(得分:6)
可以使用运行状态服务器的服务器上的性能计数器轻松查看状态服务器中的活动会话数。这并不直接等同于活动用户(由于会话超时时间)
活动会话的计数器是:“Asp.net” - “状态服务器会话激活”
作为参考,以下是来自http://msdn.microsoft.com/en-us/library/fxk122b4.aspx
的所有与State Server相关的perfmon计数器放弃状态服务器会话 已明确放弃的用户会话数。这些会话由特定用户操作结束,例如关闭浏览器或导航到其他站点。此计数器仅在运行状态服务器服务(aspnet_state)的计算机上可用。
状态服务器会话有效 当前活动用户会话的数量。此计数器仅在运行状态服务器服务(aspnet_state)的计算机上可用。
州服务器会话超时 通过用户不作为变为非活动状态的用户会话数。此计数器仅在运行状态服务器服务(aspnet_state)的计算机上可用。
州服务器会话总数 在流程生命周期内创建的会话数。此计数器是状态服务器会话活动,状态服务器会话已放弃和状态服务器会话超时的总值。此计数器仅在运行状态服务器服务(aspnet_state)的计算机上可用。
答案 1 :(得分:0)
需要在应用程序级别而不是会话级别跟踪用户数量。
您应该能够通过以下内容查看当前会话内容:
StringBuilder builder = new StringBuilder();
foreach ( String key in Session.Contents ) {
builder.AppendFormat("{0}: {1}<br />", key, Session[key]);
}
Response.Write(builder.ToString());