`
sty2008boy
  • 浏览: 301787 次
  • 性别: Icon_minigender_1
  • 来自: 太原
社区版块
存档分类
最新评论

NET Session超时的解决方法

 
阅读更多

相信大家在使用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超时解决方案

    Javaweb项目Session超时解决方案 在Java Web开发中,Session机制为我们提供了许多方便,Session是由浏览器和服务器之间维护的。Session超时理解为:浏览器和服务器之间创建了一个Session,由于客户端长时间(休眠...

    session丢失解决方法

    ### Session丢失解决方法 在ASP.NET开发过程中,经常会遇到一种情况:当对网站进行某些特定操作(如修改或删除站内目录)时,原本正常的Session会突然失效或丢失。这不仅影响用户体验,还可能导致一系列安全性和...

    .net解决了防止用户重复登陆,session超时

    接下来,我们设定Session超时为1分钟,并启用无Cookie模式: ```xml &lt;sessionState mode="InProc" cookieless="true" timeout="1" /&gt; ``` 启用页面跟踪以方便调试: ```xml ``` 在`Global.asax`文件中,我们...

    Web 开发中Ajax的Session 超时处理方法

    在Web开发中,Session超时处理是一个常见的需求,特别是在用户长时间无操作或系统设定的特定时间后,为了保护用户的数据安全,系统会自动结束用户的会话。对于传统的HTTP请求,服务器端可以通过重定向来提示用户重新...

    小程序server请求微信服务器超时的解决方法

    今天有同学在测试小程序的过程中,发现一个问题,调用 微信官方的服务端接口超时 ,比如这个接口,https://api.weixin.qq.com/sns/jscode2session ,因为我们小程序登录的时候,会在自己server端调用微信的API,这个...

    Session丢失原因和解决方案

    ASP.NET Session 丢失通常是由多种原因引起的,包括进程重启、Session超时、配置文件更改、应用程序更新或杀毒软件活动。在深入探讨解决方案之前,让我们先理解Session的基本原理。 Session是一种服务器端的状态...

    网页session的一些常见问题并解决方案

    一、Session超时问题 在ASP.NET中,Session默认会在20分钟后过期。如果用户长时间无操作,再次提交请求时,可能会丢失Session中的数据。解决方法包括调整`&lt;sessionState&gt;`元素在Web.config中的timeout属性,以延长或...

    完美解决ajax访问遇到Session失效的问题

    现在Ajax在Web项目中应用广泛,几乎可以说无处不在,这就带来另外一个问题:当Ajax请求遇到Session超时,应该怎么办? 显而易见,传统的页面跳转在此已经不适用,因为Ajax请求是XMLHTTPRequest对象发起的而不

    Session实例

    - 适当设置Session超时,避免用户长时间未操作导致占用服务器资源。 - 对敏感信息加密后再存储到Session。 - 使用唯一且难以预测的Session ID,降低被攻击的风险。 - 在不使用Session时及时清理,减轻服务器负担...

    “session已关闭”——解决方案

    解决方法是检查Web服务器或应用程序的session配置,延长session超时时间,或者在用户无操作时通过心跳机制保持session活跃。 **二、服务器配置问题** 服务器配置不正确也可能导致session关闭。例如,如果session...

    webix+springmvc session超时跳转登录页面

    解决这个问题的方法是,我们需要在Webix的Ajax请求处理中添加对Session超时的检测和响应。根据提供的内容,我们可以看到有以下步骤: 1. **分析Webix源码**:Webix的`webix.ajax`方法默认只有请求前的监听函数`...

    phpcms web发布session过期问题解决

    例如,session超时时间可能设置为`session.gc_maxlifetime`,默认值为1440秒(即20分钟)。如果用户希望session保持更长时间,可以通过修改这个值来延长。 解决phpcms session过期问题的方法有以下几种: 1. **...

    .net C# 利用session控制用户重复登录及统计在线用户数解决方案

    `Session`有一个默认的超时时间,一般为20分钟,超过这个时间用户被认为已离线。可以定期遍历所有活跃的`Session`,检查其包含的用户登录状态,从而更新在线用户数。 在`session_timeANDtimes`这个文件名中,可能...

    SpringSession+Redis实现Session共享案例

    - 可以通过设置合理的Session超时时间,避免无用的Session占用存储空间。 6. **监控与维护**: - 使用Redis监控工具(如Redis Commander、RedisInsight等)监控Session的存储和访问情况。 - 定期清理过期的...

    spring session redis分布式session

    在某些情况下,我们可能需要自定义Session的行为,例如改变Session ID的生成逻辑、设置Session超时时间等。Spring Session提供了丰富的API供我们扩展。以下是一个自定义SessionRepository的例子: ```java @...

    Spring Session + redis实现session共享

    5. **设置session超时时间**:可以在配置中设置session的过期时间,Spring Session默认的过期时间是30分钟。 6. **处理冲突**:由于多服务器可能同时修改同一session,需要处理可能出现的并发冲突。Spring Session...

    关于session丢失问题

    开发者可以通过调整服务器的Session超时时间来解决这个问题,延长Session的有效期。 2. **浏览器关闭**:大多数浏览器在关闭时会清除所有的Cookie,包括用于存储Session ID的Cookie。因此,当用户再次打开浏览器时...

    集群环境下memcache解决session共享

    4. 配置文件:为了配置memcache session管理器,我们需要在Tomcat的`context.xml`或`server.xml`中设置相关参数,如memcache服务器的地址、端口、超时设置、序列化策略等。 在实际应用中,我们还需要考虑以下几点:...

    iis7中session丢失的解决方法小结

    检查代码中处理Session的逻辑,确保没有意外清空Session数据的代码,同时确认Session超时设置是否合理。 除此之外,程序框架页面和跨域请求可能导致Session丢失,当涉及到多个域时,Session状态可能无法正确共享。...

Global site tag (gtag.js) - Google Analytics