设置C#Web网页Session超时丢失时间

我们两清 提交于 2020-03-30 20:45:24

C# Web网站

有时候在web.config设置sessionState 或者类文件里设置Session.Timeout,在IIS里访问时每次都是达不到时间就超时,原因是因为在IIS中设置了Session的超时时间,IIS里设置Session方法为: 

1.IIS图形界面设置

IIS6    在IIS里面右键点击默认网站->主目录->应用程序设置里点配置->选项->启用会话状态->会话超时那里设置时间 
IIS7.5 点击站点->功能视图->ASP->会话属性->超时

再web.config中设置Session过期时间方法:

  <system.web>
    <!--最大请求长度,单位为kb-->
    <compilation debug="true" targetFramework="4.6" />
    <httpRuntime targetFramework="4.6" maxRequestLength="409600"  />
    <httpModules>
      <add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" />
    </httpModules>
    <!--<sessionState mode="InProc" timeout="20" />-->
  </system.web>

timeout   设置经过多少分钟后服务器自动放弃Session信息。默认为20分钟;

当用户登录网站后较长一段时间没有与服务器进行交互,将会导致服务器上的用户会话数据(即session)被销毁。此时,当用户再次操作网页时,如果服务器进行了session校验,那么浏览器将会提醒用户session超时。

下面说一下如何解决用户登录后较长时间未操作而导致的session失效的问题?

一般情况下下,我们首先想到的是,通过改变服务器的配置,延长服务器的session超时时间。
在Tomcat服务器和项目的的web.xml文件中有如下节点内容:

<session-config>
    <session-timeout>30</session-timeout>
</session-config>这里的30表示session的超时时间,单位为分钟,如果用户登录后在30分钟内没有与服务器交互,那么当前用户的session将失效。我们可以配置一个更大的数值(比如60),就可以延长session的超时时间,如果将该值改为0或负数的话,则表示session永不失效。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!