【发布时间】:2014-07-28 13:24:41
【问题描述】:
我有一个使用 ASP.NET MVC 4 和 razor 的网站。 我不希望用户会话过期,我在 webconfig 中配置,我设置了一天后过期的会话。 在我的网络配置中,我有这个:
<authentication mode="Forms">
<forms loginUrl="~/raLogin/Login" timeout="1440"/>
</authentication>
....
....
<sessionState mode="InProc" cookieless="false" timeout="1440" customProvider="DefaultSessionProvider">
<providers>
<add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</providers>
</sessionState>
但是会话在 20 分钟后过期!! 然后我配置 IIS 7 (windows server 2008) 我安装了 MS FW 4.0 并执行 aspnet_regiis.exe -ir 在 ASP.NET v4 Classic 的应用程序池中,我设置了这个值(见图):
但会话在 20 分钟后过期 ISS 7 中的网站我设置了这个值:
如何设置我的网站以使会话在一天后过期?
【问题讨论】:
-
这是个坏主意。您放入会话中的任何内容都将保留在内存中,直到会话到期或应用程序池被回收。所以这可能是内存泄漏的来源,因为对象不会被垃圾收集。此外,您不能依赖于此,因为 IIS 可以随时回收应用程序池(并且您无法阻止它),因此您应该编写应用程序以不依赖会话可用,即使您刚刚登录在.. 因为它可能随时消失。如果需要,您需要能够在会话中重新创建任何内容。
标签: asp.net-mvc asp.net-mvc-4 session iis iis-7