Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc MVC 5会话每15分钟过期一次_Asp.net Mvc_Asp.net Mvc 5_Session State - Fatal编程技术网

Asp.net mvc MVC 5会话每15分钟过期一次

Asp.net mvc MVC 5会话每15分钟过期一次,asp.net-mvc,asp.net-mvc-5,session-state,Asp.net Mvc,Asp.net Mvc 5,Session State,我正在使用MVC5。每15分钟或在会话到期之前 下面是我在web.config文件中添加的代码 身份验证模式=“无” sessionState mode=“InProc”timeout=“20” 请帮帮我。 谢谢您可以通过在web.config中添加以下行来增加会话超时 超时(分钟) InProc会话存储在内存中,并与进程绑定。换句话说,它是不稳定的:因为内存可以回收,进程也可以终止。特别是,默认情况下,应用程序池被设置为定期循环,也可能会崩溃,或者IIS或服务器本身可能会重新启动。所有这些都将

我正在使用MVC5。每15分钟或在会话到期之前 下面是我在web.config文件中添加的代码

身份验证模式=“无” sessionState mode=“InProc”timeout=“20” 请帮帮我。
谢谢

您可以通过在web.config中添加以下行来增加会话超时

超时(分钟)
InProc会话存储在内存中,并与进程绑定。换句话说,它是不稳定的:因为内存可以回收,进程也可以终止。特别是,默认情况下,应用程序池被设置为定期循环,也可能会崩溃,或者IIS或服务器本身可能会重新启动。所有这些都将破坏任何活动会话


InProc实际上只在开发中才可行,它可以避免您为了玩一些代码而不得不建立一个实际的会话存储。在生产中,您应该始终使用其他工具,如SQL Server或Redis。即使在开发过程中,也要意识到,由于它与进程相关,因此停止和重新启动调试等操作会终止IIS Express进程,从而终止会话状态。

如果您在IIS中托管网站,并且15分钟内未向网站提出任何请求,那么应用程序池很可能已经被回收。这意味着存储在内存中的任何数据(如指定的会话状态mode=“InProc”)都已丢失,并且在15分钟后访问网站时创建了一个新线程。你会很容易注意到这种情况,因为应用程序池的启动时间可能需要10到30秒,这就解释了为什么第一个请求需要如此长的时间才能呈现,而后续请求则要快得多

如果这种情况发生在本地计算机上,则代码的任何重新编译都会产生相同的效果

另一种可能性是,您在负载平衡器后面,第二个请求不会转到为第一个请求提供服务的同一个物理服务器。(显然,第二台服务器不知道第一台服务器上的内存中有什么内容)

出于这些原因,最好避免使用mode=“InProc”。您不希望在生产中使用mode=“InProc”,最好在开发中使用相同的设置,这样您就可以尽早看到任何问题

我也有类似的设置

<sessionState mode="InProc" cookieless="false" timeout="20" />


设置为20分钟。

您添加的代码在哪里?您似乎混淆了会话和身份验证。它们是两种不同的东西。你是什么意思?它需要你再次登录,还是你的会话变量消失了?我想这对你很有用:在@AlsamilMehboob的链接中有一个答案,其中包含正确的方法来编写
,我已经这样做了,并设置了20分钟的时间,但它不起作用。你能给我一个如何在MVC5中管理会话的解决方案吗
<sessionState mode="InProc" cookieless="false" timeout="20" />