【发布时间】:2014-08-30 12:05:38
【问题描述】:
我在 ASP .NET/C# MVC 中使用 Session[""] 对象。我对它们做了很多检查,但我问自己,如果没有指定会话对象,什么会破坏它?
我想确保这些Session[""] 在某些过程中保持不变,并且只能通过我的指示或用户退出应用程序才能清除。
【问题讨论】:
-
InProc或SessionState Service? -
Web 服务器可以随时停止会话,基本上。通常这发生在可配置的超时时间过后。 (我相信默认值是 20 分钟。)如果您需要这些数据在 Web 服务器的突发奇想之外持续存在,您不应该将您的应用程序耦合到该 Web 服务器。相反,将数据保存在您可以控制的地方。
-
InProc会话状态在负载下也非常不稳定。每次应用程序域重启 Session 状态丢失,进程重启会导致 Session 状态数据丢失,如果 Session 状态中存储了大量数据,进程的内存消耗可能会增加到因内存过高而出现问题的程度.因此,应尽可能限制 Session 状态中存储的数据量以及需要存储这些数据的时间范围。
标签: c# asp.net asp.net-mvc session