方法一:
aspnet Session的默认时间设置是20分钟,即超过20分钟后,服务器会自动放弃Session信息
当我们在aspnet程序中打开webconfig的时候,可以看到一段如下的代码:
Aspnet程序代码:
<sessionState
mode="InProc"
stateConnectionString="tcpip=127001:42424"
sqlConnectionString="data source=127001;Trusted_Connection=yes"
cookieless="false"
timeout="20"
/>
设置timeout="20"
ASPNET session时间的设置方法二: 不过有时修改配置文件不能很好的解决这个问题。你可以在公共程序里Globalasax里修改。我们在找到globalasax中找到 Session_Start后 按如下设置一下就可以了。
void Session_Start(object sender, EventArgs e)
{
// 在新会话启动时运行的代码
SessionTimeout = 600;
}
要是设置无效,,就参考一下>session是服务器端的,和浏览器无关。
每次发送请求,会重置session的过期时间,一般web服务器的session过期时间都是几十分钟到1小时,持续发送,session就不会过期。
但这个期限,不是“永远”的,不同的web服务器,功能有所不同,但各种重启和回收都可能导致session过期,持续发送的请求也没有用。具体设置: 在主页面或者公共页面中加入:sessionsetMaxInactiveInterval(900); 参数900单位是秒,即在没有活动15分钟后,session将失效。 这里要注意这个session设置的时间是根据服务器来计算的,而不是客户端。所以如果是在调试程序,应该是修改服务器端时间来测试,而不是客户端。首先你要搞清楚session与cookie的关系, 客户端每次向服务器发起请求的时候就会带一个cookie过去, 服务器会判断如果没有jsessionid的话,就会创建一个然后再写入cookie中,这样就可以一直保持全会话了,若客户端禁用了cookie那么每次向服务器请求,服务器都会创建新的session, 这个session的有效期只是数据保存在服务器的有效期,其实它就是一个map对象,但是有超时这个概念, 即创建一个对象出来,超过一定时间都没有使用以后服务器就会清除掉。
Session:在计算机中,尤其是在网络应用中,称为“会话”。
Session直接翻译成中文比较困难,一般都译成时域。在计算机专业术语中,Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统之间所经过的时间。具体到Web中的Session指的就是用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间。因此从上述的定义中我们可以看到,Session实际上是一个特定的时间概念。
解决方法:
(1)在主页面或者公共页面中加入:sessionsetMaxInactiveInterval(900);
(2)参数900单位是秒,即在没有活动15分钟后,session将失效。
(3)这里要注意这个session设置的时间是根据服务器来计算的,而不是客户端。所以如果是在调试程序,应该是修改服务器端时间来测试,而不是客户端。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)