4

内存压力是否会导致会话信息在 ASP.NET 中被驱逐?

如果是这样,这只会在所有缓存都被驱逐后发生(即使使用 CachePriority.Highest),或者发生这种情况的阈值是多少?

4

3 回答 3

3

它不会像缓存一样被自动清除以节省内存。但是,如果工作进程内存不足,它将自动重新启动。如果您使用 InProc 会话存储,这意味着所有会话都将丢失。

于 2009-10-01T21:45:59.780 回答
2

Session 对象是一个单一的单元。如果会话因内存资源不足而中断,则会删除整个对象,而不是单个属性。

如果您遇到 Session 对象中的单个值消失,最可能的原因是您在某处有一些代码将其删除。

于 2009-10-01T21:56:22.393 回答
1

Session 和 Cache 绝对是易失的存储介质。我不确定是否存在相互影响的优先级,但您需要考虑的因素不仅仅是内存压力。例如,只需修改 web.config(回收应用程序池)即可擦除 Session。这当然是假设您使用的是默认会话存储提供程序——您可以更改为进程外或 SQL 会话存储(如果这可能有助于您的特定场景)。

于 2009-10-01T21:44:22.450 回答