2013-04-18 21 views
0

我在項目中使用了很多ASCX用戶控件。這些控件利用更新面板來更新其內容。要在部分帖子後臺保留數據(即更新面板更新時),我將所有控件數據存儲在會話中。例如,我可能有一個使用CheckBoxList的控件。當用戶從列表中選中一個框時,它會導致部分回發(執行一些邏輯操作),並且更新面板會觸發。由於該面板正在更新,因此我將丟失後發之間的所有數據,除了我將這些數據存儲在會話中。這樣,當控件重新加載時,我可以獲取數據並恢復複選框列表。我的會話通常由對象列表組成。在用戶控件中使用會話

我的問題是:這是堅持數據的最佳方式嗎?我可能沒有考慮到哪些可能的問題?我被告知,如果多個人同時使用這個(因爲對象列表很大),IIS可能會耗盡內存並崩潰。

感謝所有幫助

回答

0

這很難說,如果這是你的特定項目「堅持數據的最佳方式」。然而,我可以解決你的問題中的「可能的問題」部分。

會話狀態默認存儲在內存中,這意味着您將在服務器上使用其他資源。會話變量可以隨時創建,並且不要求您明確地處理它們,這可能會導致更多的開銷。所以是的你是正確的,使用會話的大部分功能很可能意味着使用更多的資源(CPU和內存)。它是否會「耗盡內存和崩潰」是負載與服務器的問題。