2009-10-01 43 views

回答

2

Session對象是一個單元。如果會話因缺少內存資源而被縮短,整個對象將被刪除,而不是單個屬性。

如果您遇到Session對象中的單個值消失,最可能的原因是您有一些代碼將其刪除。

1

會話和緩存絕對是非易失性存儲介質。我不確定是否存在相互影響的優先級,但是存在更多的因素,而不僅僅是需要考慮的內存壓力。例如,只需通過修改web.config(可以回收應用程序池)即可消除Session。這當然假定您正在使用默認的會話存儲提供程序 - 如果這可能有助於您的特定情況,您可以更改爲進程外或SQL會話存儲。

+0

我正在使用進程外ASP.NET會話狀態服務器。然而,我想知道我是否能夠遇到一個會議的特定領域已被驅逐而其他人仍在那裏的場景。 – Alex 2009-10-01 21:46:47

3

它不會被自動清除以便以與緩存相同的方式節省內存。但是,如果工作進程耗盡內存,它將自動重新啓動。如果您使用InProc會話存儲,這意味着所有會話都將丟失。

+0

與我對Matt發表的評論相同 - 我使用的是進程外ASP.NET會話狀態服務器。然而,我想知道我是否能夠遇到一個會議的特定領域已被驅逐而其他人仍在那裏的場景。 – Alex 2009-10-01 21:47:38

+0

@Alex - 不,ASP.Net會話狀態服務器永遠不會丟失會話中的任意值(由於內存不足或其他原因)。 – jsight 2009-10-02 03:54:22

相關問題