ASP.NET mvc auth或会话比设置更快到期

在我的ASP.NET MVC5 网站中,web.config中的登录和会话超时如下:

      

会话或身份validation仍然在五分钟内完成。 我已经接近我的网络托管服务,以增加IIS的超时,他们在增加IIS的超时后共享了一个屏幕截图 ,但没有任何改变。 知道为什么会这样。

首先,尝试在Global.asax中的Session_Start方法上设置会话超时:

 void Session_Start(object sender, EventArgs e) { Session.Timeout = 60; } 

注意:通过使用进程内会话状态,您的会话将清除每个IIS应用程序池回收,这些回收在您的问题应用程序池中在5分钟后回收。

如果上述尝试不起作用并且您可以访问服务器的IIS管理,请执行以下步骤:

  1. 打开IIS管理器。
  2. 选择应用程序池=> [您的应用程序池名称] =>回收/高级设置。
  3. 启用Regular time interval (minutes)并将其设置为60,然后应用更改。

如果您无法同时访问IIS管理器和SQL Server配置,则可能需要尝试基于数据库的会话状态管理而不是InProc模式(请参阅下面的MSDN参考)。

基于数据库的会话状态需要将模式属性更改为SQLServer ,例如:

    

参考:

MSDN: https : //msdn.microsoft.com/en-us/library/ms178586.aspx

会话在asp.net mvc4应用程序中过期

这是IIS中的SystemIdleTime变量的问题。 我请求我的托管服务提供商将此值增加到30分钟,并且它有效。

它表示当没有30分钟的请求时,当应用程序池关闭时,我的所有会话变量都将被擦除。 该值将覆盖网站web.cofig中设置的会话超时。 您可以将其设置为0以指示应用程序池永远不会关闭,然后您可以通过web.config控制会话的超时。 我也找到了这篇好文章