【问题标题】:How to count sessions in asp.net server application如何计算 asp.net 服务器应用程序中的会话数
【发布时间】:2016-06-23 15:49:59
【问题描述】:

有一种方法可以管理一个运行 asp.net 的应用程序有多少会话?我想在一个页面中展示它,如果有的话,可能还有一些其他重要信息。而且,我该怎么做?

【问题讨论】:

  • 是的!但是如果我们能获得更多有价值的信息,比如资源消耗,那应该很棒!
  • 好的。在我的回答中,您也可以从 Session 中检索、更新和存储用户信息的数组(而不是单个 App 元素)。您将拥有所有用户信息的一个很好的数组。
  • 您的应用是使用 stateserver 还是 InProc ?也许使用 Performance Monitor stats(以编程方式通过 WMI

标签: asp.net


【解决方案1】:

global.asax 中,执行以下操作:

处理Application.Start 事件添加以下内容:

Application["LiveSessionsCount"] = 0;

处理Session.Start 事件添加以下内容:

Application["LiveSessionsCount"] = ((int) Application["LiveSessionsCount"]) + 1;

处理Session.End 事件添加以下内容:

Application["LiveSessionsCount"] = ((int) Application["LiveSessionsCount"]) - 1;

要检索页面内的会话计数,请编写以下内容:

int LiveSessionsCount = (int) Application["LiveSessionsCount"];

【讨论】:

【解决方案2】:

也许在您的 global.asax 文件 Session_Start 和 Session_End 事件中,您可以将会话信息存储到应用程序状态对象内的 userinfo 数组中。然后,您可以在整个应用程序中从 App State 管理此数组。

【讨论】:

  • 此解决方案计算存储在应用程序对象中的所有值,而不仅仅是会话数。它还为繁忙的站点浪费了大量内存。您只需要一个整数。
  • @ShadowChaser 他想“管理”会话信息,而不仅仅是计算有多少人登录。虽然,我应该在 App State 中有一个单独的数组来存储这些信息。跨度>
  • 注意:stateserver Session_End 将不起作用,仅适用于 InProc
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-12
  • 1970-01-01
相关资源
最近更新 更多