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

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永不失效。
原文地址:https://www.cnblogs.com/turnip/p/11362627.html