webconfig里明明设置了timeout是很大的数值了,可是session的有效性仍然无法维持一小时。

查了一下,主要是说 mode="InProc" 的话,session是放在进程里的,这样最容易丢失。如果放在 服务和数据库,会稳定一些。  很多人都放 服务里吗?

cookieless设置成true有必要吗?

http://blog.csdn.net/kaifa123/article/details/6890106

==============================================================

.net Session 超时控制

http://blog.csdn.net/freeman127/article/details/8633449

 
发现直接在web.config文件里添加<sessionState mode="InProc" timeout="300"></sessionState> 后,session还是很快就会超时,网上查到资料后试了下,加入如下代码可以对session超时时长进行有效控制:

<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" cookieless ="false" timeout="240" stateNetworkTimeout="14400"></sessionState>

加上之后,还需在网站所在服务器上打开"服务"——ASP.NET State Service 设置为启动,并自动后即可。

 
 
属性      选项      说明 
mode     指定在哪里存储会话状态。 
          Off       指示会话状态未启用。 
          InProc    指示在本地存储会话状态。 
          StateServer 指示在远程计算机上存储会话状态。 
          SQLServer 指示在 SQL Server 上存储会话状态。 
 
========================================================================
session默认的超时时间是20分钟,页面20分钟没有动作就会超时了。可以再webconfig里面进行修改。
追问:

我已经设置成60分钟,就算是默认20分钟,有时没几分钟也超时了。

回答:

asp.net 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

追问:

第一种方法是可以,自己有服务器一般都这样配置。

=====================================================================

 
 
 

.net Session 超时控制的更多相关文章

  1. ExtJS4.2.1与Spring MVC实现Session超时控制

    假设你的项目使用ExtJS作为表现层.你会发现,SESSION超时控制将是一个问题. 本文将就自己的经验.来解决这一问题.当然,解决这个问题并不是仅仅有一种方法,我仅仅是提出我的方法. 首先.做超时控 ...

  2. Extjs springmvc session 超时 处理

    如果你的项目使用ExtJS作为表现层,你会发现,SESSION超时控制将是一个问题.本文将就自己的经验,来解决这一问题,当然,解决问题并非只有一种方法,我只是提出我的方法.首先,做超时控制,必需使用过 ...

  3. Spring Boot+redis存储session,满足集群部署、分布式系统的session共享

    本文讲述spring-boot工程中使用spring-session机制进行安全认证,并且通过redis存储session,满足集群部署.分布式系统的session共享. 原文链接:https://w ...

  4. session实现购物车

    为实现简单的购物功能(购物车添加.账户查看.购物车商品删除.实时的购物商品数量及价格的计算显示.购物车商品数量可手动输入等),用session实现了一简单的以php语言为基础.连接MySQL数据库的购 ...

  5. Asp.net Core中使用Session

    前言 2017年就这么悄无声息的开始了,2017年对我来说又是特别重要的一年. 元旦放假在家写了个Asp.net Core验证码登录, 做demo的过程中遇到两个小问题,第一是在Asp.net Cor ...

  6. 懒加载session 无法打开 no session or session was closed 解决办法(完美解决)

           首先说明一下,hibernate的延迟加载特性(lazy).所谓的延迟加载就是当真正需要查询数据时才执行数据加载操作.因为hibernate当中支持实体对象,外键会与实体对象关联起来.如 ...

  7. 探索ASP.NET MVC5系列之~~~6.Session篇(进程外Session)

    其实任何资料里面的任何知识点都无所谓,都是不重要的,重要的是学习方法,自行摸索的过程(不妥之处欢迎指正) 汇总:http://www.cnblogs.com/dunitian/p/4822808.ht ...

  8. Nhibernate的Session管理

    参考:http://www.cnblogs.com/renrenqq/archive/2006/08/04/467688.html 但这个方法还不能解决Session缓存问题,由于创建Session需 ...

  9. nginx+iis+redis+Task.MainForm构建分布式架构 之 (redis存储分布式共享的session及共享session运作流程)

    本次要分享的是利用windows+nginx+iis+redis+Task.MainForm组建分布式架构,上一篇分享文章制作是在windows上使用的nginx,一般正式发布的时候是在linux来配 ...

随机推荐

  1. 打造H5里的“3D全景漫游”秘籍

    近来风生水起的VR虚拟现实技术,抽空想起年初完成的“星球计划”项目,总结篇文章与各位分享一下制作基于Html5的3D全景漫游秘籍. QQ物联与深圳市天文台合作,在手Q“发现新设备”-“公共设备”里,连 ...

  2. cookie禁用了,session还能用吗?

    Cookie与 Session,一般认为是两个独立的东西,Session采用的是在服务器端保持状态的方案,而Cookie采用的是在客户端保持状态的方案.但为什么禁用Cookie就不能得到Session ...

  3. 数据挖掘之决策树ID3算法(C#实现)

    决策树是一种非常经典的分类器,它的作用原理有点类似于我们玩的猜谜游戏.比如猜一个动物: 问:这个动物是陆生动物吗? 答:是的. 问:这个动物有鳃吗? 答:没有. 这样的两个问题顺序就有些颠倒,因为一般 ...

  4. C#实现Windows服务

    资源:Walkthrough: Creating a Windows Service Application in the Component Designer: https://msdn.micro ...

  5. 洛谷 P3366 【模板】最小生成树 prim算法思路 我自己的实现

    网上有很多prim算法  用邻接矩阵 加什么lowcost数组 我觉得不靠谱 毕竟邻接矩阵本身就不是存图的好方法 所以自己写了一个邻接表(边信息表)版本的  注意我还是用了优先队列  每次新加入一个点 ...

  6. dbms_output.put_line 不显示

    再写oracle sql时候,写循环语句,想知道循环对不对,使用dbms_output.put_line()没有打印出任何东西,网上查找发现少了一句. 加上 set serverouput on  就 ...

  7. char、varchar、text和nchar、nvarchar、ntext的区别

    1.CHAR.CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间,不足的自动用空格填充,所以在读取的 ...

  8. UIPopoverController使用

    *:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...

  9. sqlce中不支持sp_rename修改表名

    The sp_rename procedure is not avialable in SQL CE! In Sql Server 2005 Management Studio you have to ...

  10. 十、DG

    1.DG是dependency graph,我认为是依赖图,和DAG(有向无环图)的区别:DAG用来做场景管理,每个node代表的不是tranform就是shape,有父子关系. DG是代表了每个实体 ...