我在ASP .NET / C#MVC中使用Session[""]
个对象。我做了很多检查,但我问自己,如果没有我指定它会破坏会话对象是什么?
我想确保这些Session[""]
在某些过程中保持不变,并且只能通过我的指示清除或者用户退出应用程序。
答案 0 :(得分:2)
如果你正在使用InProc
,那么很多事情都可以杀死会话状态。 e.g。
如果您需要更持久的解决方案,请阅读this article,this article中还有一些备选方案。
答案 1 :(得分:1)
它取决于您使用的会话状态类型。
InProc - 如果Web服务器进程关闭或崩溃,会话将被销毁。 IIS应用程序池处于活动状态后,默认关闭时间为20分钟。如果IIS应用程序池达到其内存限制,它也将关闭,因此这是建议最少的会话状态管理方法。
StateServer - 会话存储在服务器上的单独服务中。会话将保持活动状态,直到此服务关闭或不可用。它比InProc更可靠,但是如果服务关闭,你会丢失任何会话数据。
SQLServer - 会话存储在SQL数据库中。这是最强大的解决方案,会话基本上得到保证,直到你销毁它们,但它也是最复杂的设置,需要SQL服务器和数据库。
自定义 - 存储您必须指定的会话的其他一些方法。
有关该主题的更多信息,请参阅以下链接。
http://msdn.microsoft.com/en-us/library/vstudio/ms178581%28v=vs.100%29.aspx http://msdn.microsoft.com/en-us/library/vstudio/system.web.sessionstate.sessionstatemode%28v=vs.100%29.aspx