【问题标题】:How to find the Number of Active Users when using a StateServer使用 StateServer 时如何查找活动用户数
【发布时间】:2010-09-19 21:32:16
【问题描述】:

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

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

【问题讨论】:

    标签: asp.net stateserver


    【解决方案1】:

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

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

    StringBuilder builder = new StringBuilder();
    foreach ( String key in Session.Contents ) {
        builder.AppendFormat("{0}: {1}<br />", key, Session[key]);
    }
    Response.Write(builder.ToString());
    

    【讨论】:

    • 这不计算已添加到“当前”会话的对象数量吗?我认为这不会透露任何有关会话总数的信息。 @tormod-hystad 的回答似乎更可行
    • 我向他展示了如何获取会话中的内容,而不是跟踪当前使用会话的用户。
    【解决方案2】:

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

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

    供参考,这里是所有State Server相关的性能计数器,来自http://msdn.microsoft.com/en-us/library/fxk122b4.aspx

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-02-24
      • 2012-10-08
      • 1970-01-01
      • 2015-04-02
      • 1970-01-01
      • 1970-01-01
      • 2011-01-21
      • 1970-01-01
      相关资源
      最近更新 更多