我有一个带有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中的网站网站我设置了这个值:
我如何设置我的网站以使会话在一天后过期?
答案 0 :(得分:0)
您可以使用SQLServer支持的持久性进程外状态机制。正如Erik指出的那样,您可能希望查看您尝试保留的数据,因为会话变量可能不是最佳位置。
状态机制的说明和配置说明: http://msdn.microsoft.com/en-us/library/vstudio/ms178586(v=vs.100).aspx
审查InProc,StateServer和SQLServer性能: http://www.nullskull.com/a/1611/aspnet-session-how-to-faqs.aspx
如果你真的想要得到想象,你可以使用大男孩使用的东西,分布在AppFabric等内存缓存中: http://msdn.microsoft.com/en-us/library/ee790859(v=azure.10).aspx