【发布时间】:2011-03-20 05:52:56
【问题描述】:
我正在尝试创建一个管理屏幕,该屏幕将为我提供有关应用程序/站点中所有打开会话的详细信息。我还想知道每个会话对象有多少是活动的
会话对象为我提供有关当前会话的信息。我如何找到有关所有公开会议的信息。有多少会话处于活动状态,等等。
谢谢,
SK
【问题讨论】:
我正在尝试创建一个管理屏幕,该屏幕将为我提供有关应用程序/站点中所有打开会话的详细信息。我还想知道每个会话对象有多少是活动的
会话对象为我提供有关当前会话的信息。我如何找到有关所有公开会议的信息。有多少会话处于活动状态,等等。
谢谢,
SK
【问题讨论】:
假设您想在您的 ASP.Net 代码中执行此操作,而不是使用 Web 服务器工具,您可以在 Session_Start 上的应用程序(或缓存)变量中增加一个计数器,并在 Session_End 上减少它在Global.asax。
如果你想知道的不仅仅是活跃用户的数量,你可以在一个集合中积累用户信息——也许是一个 List<T> 的用户对象。
这里有一些代码可以帮助您开始使用这种方法:
protected void Session_Start(object sender, EventArgs e)
{
Application.Lock();
Application["SessionCount"] = Convert.ToInt32(Application["SessionCount"]) + 1;
Application.UnLock();
}
protected void Session_End(object sender, EventArgs e)
{
Application.Lock();
Application["SessionCount"] = Convert.ToInt32(Application["SessionCount"]) - 1;
Application.UnLock();
}
【讨论】: