相信大家在使用Session时,偶尔会出现超时问题,现在我就来教大家三个方法:
第一个办法:
我有好办法。并且一直用,感觉很爽。
1、在web.config里面加入:<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" cookieless ="false" timeout="240" stateNetworkTimeout="14400"></sessionState>
2、点击电脑左下角 开始->运行->输入 services.msc 回车 找到ASP.NET State Service,双击,改成自动,并启用。
其中 stateNetworkTimeout 为 在客户端与服务器之间 多长时间没有传送信息则断开他们之间的连接。我设置的是14400,即:14400/60/60=4小时
缺点:在服务器中用ASP.NET State Service服务存储session。会造成服务器资源的紧张。如果有money的话最好买一台服务器专门做session服务。当然,对于小应用无所谓。做过一个小的日志系统,日志,顾名思意,就是网页长期打开,有事的话就往上面录,运行了一年,没有因为session出过问题。
第二个办法(推荐使用):
1)创建一个文件savesession.js(xhbmj:js最好重写一下以支持更多浏览器,用jquery最好)
function createXmlHttpRequest()
{
var xmlhttp;
try{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); //IE 5.0版本
}
catch(e){
try{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); //IE 5.5版本
}
catch(e){
try{
xmlhttp = new XMLHttpRequest(); //不支持ActiveX空间的浏览器
}
catch(e){}
}
}
return xmlhttp;
}
function Reconnect()
{
var url='reconnect.aspx'
xmlHttp=createXmlHttpRequest()
xmlHttp.open('GET', url , true)
xmlHttp.send(null)
//只要求与服务器联系,不要求返回数据,因此,不进行返回处理
}
function refreshme()
{
setInterval("Reconnect();", 60000); //此时间根据实际情况调整
}
2)在需要维持session的页面加上 <script language="javascript" src="savesession.js"></script>,在<body>里面加上onload="refreshme();"
3)创建reconnect.aspx页面,可以没有内容的任何.aspx页面。
第三个办法:自创
建立一个空页面,设置页面自动刷新,可使用html的定时刷新,cs文件里随便写些东西如:
string str = Session["LoginID"].ToString();//最好加个判断null的判断
把这个页面作为iframe嵌入需要长时间操作的页面,设置iframe的宽高都为0
这样就能够解决问题了。
原文:http://blog.sina.com.cn/s/articlelist_1803561601_0_1.html
分享到:
相关推荐
Javaweb项目Session超时解决方案 在Java Web开发中,Session机制为我们提供了许多方便,Session是由浏览器和服务器之间维护的。Session超时理解为:浏览器和服务器之间创建了一个Session,由于客户端长时间(休眠...
### Session丢失解决方法 在ASP.NET开发过程中,经常会遇到一种情况:当对网站进行某些特定操作(如修改或删除站内目录)时,原本正常的Session会突然失效或丢失。这不仅影响用户体验,还可能导致一系列安全性和...
接下来,我们设定Session超时为1分钟,并启用无Cookie模式: ```xml <sessionState mode="InProc" cookieless="true" timeout="1" /> ``` 启用页面跟踪以方便调试: ```xml ``` 在`Global.asax`文件中,我们...
在Web开发中,Session超时处理是一个常见的需求,特别是在用户长时间无操作或系统设定的特定时间后,为了保护用户的数据安全,系统会自动结束用户的会话。对于传统的HTTP请求,服务器端可以通过重定向来提示用户重新...
今天有同学在测试小程序的过程中,发现一个问题,调用 微信官方的服务端接口超时 ,比如这个接口,https://api.weixin.qq.com/sns/jscode2session ,因为我们小程序登录的时候,会在自己server端调用微信的API,这个...
ASP.NET Session 丢失通常是由多种原因引起的,包括进程重启、Session超时、配置文件更改、应用程序更新或杀毒软件活动。在深入探讨解决方案之前,让我们先理解Session的基本原理。 Session是一种服务器端的状态...
一、Session超时问题 在ASP.NET中,Session默认会在20分钟后过期。如果用户长时间无操作,再次提交请求时,可能会丢失Session中的数据。解决方法包括调整`<sessionState>`元素在Web.config中的timeout属性,以延长或...
现在Ajax在Web项目中应用广泛,几乎可以说无处不在,这就带来另外一个问题:当Ajax请求遇到Session超时,应该怎么办? 显而易见,传统的页面跳转在此已经不适用,因为Ajax请求是XMLHTTPRequest对象发起的而不
- 适当设置Session超时,避免用户长时间未操作导致占用服务器资源。 - 对敏感信息加密后再存储到Session。 - 使用唯一且难以预测的Session ID,降低被攻击的风险。 - 在不使用Session时及时清理,减轻服务器负担...
解决方法是检查Web服务器或应用程序的session配置,延长session超时时间,或者在用户无操作时通过心跳机制保持session活跃。 **二、服务器配置问题** 服务器配置不正确也可能导致session关闭。例如,如果session...
解决这个问题的方法是,我们需要在Webix的Ajax请求处理中添加对Session超时的检测和响应。根据提供的内容,我们可以看到有以下步骤: 1. **分析Webix源码**:Webix的`webix.ajax`方法默认只有请求前的监听函数`...
例如,session超时时间可能设置为`session.gc_maxlifetime`,默认值为1440秒(即20分钟)。如果用户希望session保持更长时间,可以通过修改这个值来延长。 解决phpcms session过期问题的方法有以下几种: 1. **...
`Session`有一个默认的超时时间,一般为20分钟,超过这个时间用户被认为已离线。可以定期遍历所有活跃的`Session`,检查其包含的用户登录状态,从而更新在线用户数。 在`session_timeANDtimes`这个文件名中,可能...
- 可以通过设置合理的Session超时时间,避免无用的Session占用存储空间。 6. **监控与维护**: - 使用Redis监控工具(如Redis Commander、RedisInsight等)监控Session的存储和访问情况。 - 定期清理过期的...
在某些情况下,我们可能需要自定义Session的行为,例如改变Session ID的生成逻辑、设置Session超时时间等。Spring Session提供了丰富的API供我们扩展。以下是一个自定义SessionRepository的例子: ```java @...
5. **设置session超时时间**:可以在配置中设置session的过期时间,Spring Session默认的过期时间是30分钟。 6. **处理冲突**:由于多服务器可能同时修改同一session,需要处理可能出现的并发冲突。Spring Session...
开发者可以通过调整服务器的Session超时时间来解决这个问题,延长Session的有效期。 2. **浏览器关闭**:大多数浏览器在关闭时会清除所有的Cookie,包括用于存储Session ID的Cookie。因此,当用户再次打开浏览器时...
4. 配置文件:为了配置memcache session管理器,我们需要在Tomcat的`context.xml`或`server.xml`中设置相关参数,如memcache服务器的地址、端口、超时设置、序列化策略等。 在实际应用中,我们还需要考虑以下几点:...
检查代码中处理Session的逻辑,确保没有意外清空Session数据的代码,同时确认Session超时设置是否合理。 除此之外,程序框架页面和跨域请求可能导致Session丢失,当涉及到多个域时,Session状态可能无法正确共享。...