ASP.net:如何列出WebApplication所有用户会话

时间:2011-05-11 09:43:43

标签: asp.net session session-state

我想了解我的网站内存使用情况,首先我想了解所有用户的会话详细信息,这将帮助我决定是否将sessionState模式更改为“SqlServer”或“StateServer”。

我该怎么办?

由于

2 个答案:

答案 0 :(得分:1)

对于网站内存使用情况,我会看一下perfmon。如果我真的想要计算每个用户会话中使用的内存量,那么在放弃会话时不添加内存时我会这样做。如果你在整个地方都有Session [“foo”] = bar,这可能会很棘手,它需要以某种方式包裹起来。

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

答案 1 :(得分:0)

我不确定这是否可以帮助您解决问题但是您可以在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服务器场中处理会话。