如何在asp.net mvc4中长时间保持会话超时?

时间:2014-06-10 06:57:40

标签: asp.net asp.net-mvc asp.net-mvc-4 session-timeout

我在Web.config和globals.asax文件中做了一些修改,给出了一些额外的时间限制,但会话在给定的时间内没有工作。有时很快就会过期。

的Web.config:

 <sessionState mode="InProc" customProvider="DefaultSessionProvider" timeout="60000"/>

 <authentication mode="Forms">
      <forms loginUrl="~/Home/Login" timeout="28880"/>
 </authentication>

的Global.asax /在session_start():

 Session.Timeout = 1200;

我在需要的地方为会话添加了名称空间,但会话问题仍然存在,会话在所有编码完成后都是无状态的。

请任何人建议一个正确的解决方案,或者如果我的流程含糊不清,请告诉我如何以标准方式进行。

感谢。将不胜感激。

2 个答案:

答案 0 :(得分:1)

你在两个不同的地方提供超时我的意思是你需要在web.config或global.asax文件中提供超时,所以最好从global.asax删除超时声明..

如此处所记载http://www.aspdotnet-suresh.com/2010/10/session-timeout-problem-in-aspnet.html: -

  

默认情况下,我们的网站会话超时是在该会话后20分钟   如果我们想在我们的设置中设置自定义超时,则会过期   应用程序我们可以用不同的方式设置它(web.config,global.asax   并在IIS)

     

检查以下方法,在web.config,global.asax中设置会话超时   并在iis

     

在Web.config文件中,我们可以设置会话超时,如下所示

<configuration>
> 
> <system.web>
> 
>  <sessionState mode="InProc" timeout="60">
> 
>  </sessionState>
> 
>  </system.web>
> 
> </configuration> 
  

在Global.asax文件中,我们可以在Session_Start事件中设置会话超时   像这样

void Session_Start(object sender, EventArgs e)
> 
> {
> 
> // Code that runs when a new session is started
> 
> Session.Timeout = 15;
> 
> }
  

如果您在web.config和iis iis中设置会话超时   session out value覆盖web.config会话超时

答案 1 :(得分:0)

如果上述解决方案不起作用,请删除

<authentication mode="Forms">
  <forms timeout="50"/>

来自web.config文件