我有一个MVC3应用程序,直到最近一直使用InProc进行会话管理。由于应用程序池被回收导致随机注销,我不得不切换到会话状态方法。
问题是我有一个不可序列化的复杂'运行时'会话变量。其中一个主要原因是我运行的javascript.net实例被控制器/模型广泛使用。
当会话身份验证由“会话状态”方法处理时,有没有办法保留像此类'InProc'这样的变量?如果我能做到这一点,那么如果应用程序池被回收,那么所有这些数据都会丢失(因此,实际上只是和以前一样)。
答案 0 :(得分:0)
会话认证由会话状态'会话状态处理。方法
我不确定会话身份验证的含义。您的意思是表单身份验证吗?
如果您希望在回收应用程序池时存活 FormsAuthenticationTicket ,则需要在web.config中明确设置machineKeys。
基本上,会话状态很少modes。
InProc 模式 - 会话状态存储在服务器内存中。结果,当回收应用程序池时,它们都将被删除。
如果要保持会话状态,则需要以 StateServer 或 SQLServer 模式存储。