如何杀死/放弃服务器上的所有asp.net会话

时间:2011-10-31 21:40:48

标签: asp.net

如果我需要所有会话,网站上的所有用户重新初始化自己,或者可能所有用户都被放弃,以便他们重新初始化自己,除了重新启动www服务之外该怎么办呢?

非常感谢!

2 个答案:

答案 0 :(得分:2)

使用开箱即用的代码,你无法真正做到这一点。

我能想到的一种方法是将所有Sessions存储在全局上下文中,然后遍历此集合:添加到Session_Start中的集合并在Session_End中删除。

例如:

void Session_Start()
{
    if (HttpContext.Current.Cache["Sessions"] == null)
        HttpContext.Current.Cache["Sessions"] = new List<HttpSessionState>();
   (HttpContext.Current.Cache["Sessions"] as List<HttpSessionState>).Add(HttpContext.Current.Session);
}

void Session_End()
{
    if (HttpContext.Current.Cache["Sessions"] != null)
        (HttpContext.Current.Cache["Sessions"] as List<HttpSessionState>).Remove(HttpContext.Current.Session);
}

答案 1 :(得分:1)

我找到了一种解决方案 - 而不是重新启动WWW服务以实现所有sesssions结果的重置,您可以使用IIS管理器重新循环应用程序轮询。只是更快,并做我想要它做的事情。

很抱歉,如果这对某些人来说听起来微不足道:)