iis7网站ASP.NET MVC4配置会话已过期

时间:2014-07-28 13:24:41

标签: asp.net-mvc asp.net-mvc-4 session iis iis-7

我有一个带有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的应用程序池中,我设置了这个值(见图): enter image description here

但会议在20分钟后到期 在iss 7中的网站网站我设置了这个值: enter image description here

我如何设置我的网站以使会话在一天后过期?

1 个答案:

答案 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