【问题标题】:ASP.net: How to list a WebApplication All users SessionASP.net:如何列出 Web 应用程序的所有用户会话
【发布时间】:2011-05-11 09:43:42
【问题描述】:

我想知道我的网站内存使用情况,首先我想知道所有用户的Session详细信息,这将帮助我决定将sessionState Mode更改为“SqlServer”还是“StateServer”。

我该怎么办?

谢谢

【问题讨论】:

    标签: asp.net session session-state


    【解决方案1】:

    对于网站内存使用情况,我会查看 perfmon。如果我真的想计算我在每个用户会话中使用了多少内存,我会在放弃会话时添加 not 时进行计数。如果您到处都有 Session["foo"]=bar,这可能会很棘手,需要以某种方式将其包裹起来。

    如果您确实更改为进程外会话状态,则需要测试与会话相关的所有内容。您的会话变量正在跨越进程边界,它们需要可序列化,并且肯定有一些东西不起作用。

    【讨论】:

      【解决方案2】:

      我不确定这是否能帮助您解决问题,但您可以在 Session_End 事件中尝试这段代码...假设此事件是从您的注销过程中触发的... 这是会话变量可用的最后一个事件。

      protected void Session_End(object sender, EventArgs e)
       {
                  string strMessage = string.Empty;
                  for (int i = 0; i < this.Session.Count; i++)
                  {
                      strMessage += string.Format("Session of {0} Value is {1}", i.ToString(), this.Session[i].ToString());
                      strMessage += "/n";
                  }
              }
      

      this.Session.Count 应该为您提供应用程序在服务器中的会话数。仅当您的应用程序托管在单个 Web 服务器上而不是 Web 服务器场上时,此解决方案才可能有效。我不知道如何在 Web 服务器场中处理会话。

      【讨论】:

        猜你喜欢
        • 2013-05-31
        • 1970-01-01
        • 2010-09-16
        • 2019-06-11
        • 1970-01-01
        • 2011-03-10
        • 2012-04-05
        • 1970-01-01
        • 2011-09-23
        相关资源
        最近更新 更多