静态类成员不在不同IP上的不同用户之间共享

时间:2012-07-31 03:51:47

标签: asp.net global-asax

我编写了一个静态类,并假设在所有会话之间共享它的成员。它适用于在同一个cumputer上运行的所有浏览器,但不同位置的不同用户之间不共享数据。我的网站是用ASP.NET编写的

这是我的班级

public static class GlobalPool
{
    public static List<string> OnlineUsers;
}

我将Global.asax中的OnlineUSers属性实例化为

void Application_Start(object sender, EventArgs e) 
{
    // Code that runs on application startup
    GlobalPool.OnlineUsers = new List<string>(100);
}

每当用户登录我的网站时,我都会添加用户名:

public void Login(int aMemberSerial) 
{ 
    User = new MemberDataAccess().Read(aMemberSerial); 
    new MemberDataAccess().Login(User); 
    GlobalPool.OnlineUsers.Add(User.Username); 
    Message = PostBusiness.NewPost(User); 
}

1 个答案:

答案 0 :(得分:0)

这不是强大的代码。 ASP.NET应用程序会定期回收(应用程序池),因此您的所有数据都将消失。 解决此问题的最佳方法是将列表存储在数据库中,当会话到期时,从数据存储中删除该用户。