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