我正在开发MVC5应用程序。 我使用会话来存储用户数据。
以下是我用来存储会话数据的代码
if (Session["UserData"] == null)
{
Session["UserData"] = _objLoginSession;
}
我还在web.config中增加了Session Timeout,如下所示
<sessionState mode="InProc" timeout="60">
</sessionState>
我的验证模式也是无
<authentication mode="None" />
但是当我运行我的应用程序时,它只会在1到2分钟后到期。
有人可以指导我吗?
答案 0 :(得分:2)
想到ASP.NET会话 expire 的一个原因是:会话数据保存在内存中,因为您指定了InProc模式,因此如果您在Visual Studio中重新编译应用程序或某些重启您的应用程序的原因,您将丢失会话数据。并且有很多原因可以解释为什么您的应用程序可能会被Web服务器重新启动。更改web.config或bin
文件夹或计算机中的某些文件等内容开始在内存不足的情况下运行。
所有这些原因都表明你绝对不应该(开发时除外)将会话数据保存在内存中(InProc)。