2011-10-31 79 views
3

如果我需要網站上所有用戶的所有會話來重新初始化自己,或者所有的用戶都可以重新初始化自己,去除了重新啓動www服務?如何殺死/放棄服務器上的所有asp.net會話

非常感謝!

+1

你如何保持會話數據?在proc? –

+0

@AdrianIftode inproc –

回答

1

我發現了一個不大不小的解決方案,這一點 - 而不是重新啓動WWW服務,實現所有sesssions的復位造成的,你可以reycle從withing IIS管理器中的應用調查。快點,做我想做的事。

對不起,如果這聽起來微不足道:)

2

你無法真正使用開箱即用的代碼。

我能想到的一種方式是將全部會話存儲在全局上下文中,然後遍歷此集合:添加到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); 
} 
+0

會有某種服務器工具可以做到這一點?它不需要incode .. –

+0

不是我意識到..沒有可訪問的全球存儲爲會議。 –

+0

謝謝Shadow,我正在嘗試你的想法。想知道...如果我持有對會話對象的引用,會不會有回收問題? sessiong會得到正確的GCed? –