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. go 语言中常用的包

    来自学习go语言.pdf 译者刑星 ==== fmt 包fmt实现了格式化IO函数,这与c的printf和scanf类似,格式化短语派生于c %v 默认格式的值.当打印结构时,加号(%+v)会增加字段 ...

  2. Install CentOS 7 on Thinkpad t430

    - BIOS settings: - Thinkpadt430, BIOS settings: Config---------------------------- Network: wake on ...

  3. 开源共享一个训练好的中文词向量(语料是维基百科的内容,大概1G多一点)

    使用gensim的word2vec训练了一个词向量. 语料是1G多的维基百科,感觉词向量的质量还不错,共享出来,希望对大家有用. 下载地址是: http://pan.baidu.com/s/1boPm ...

  4. 【javascript杂谈】你所不知道的replace函数

    前言 最近在做面试题的时候总会用到这个函数,这个函数总是和正则表达式联系到一起,并且效果很是不错,总能很简单出色的完成字符串的实际问题,大家肯定都会使用这个函数,像我一样的初学者可能对这个函数的了解还 ...

  5. Python 之 threading

    创建多线程常用的三种方法: 创建Thread的实例,传给它一个函数 创建Thread的实例,传给它一个可调用的类实例(不推荐) 派生Thread的子类,并创建子类的实例(推荐) 创建Thread的实例 ...

  6. SQL Server 树形表非循环递归查询

    很多人可能想要查询整个树形表关联的内容都会通过循环递归来查...事实上在微软在SQL2005或以上版本就能用别的语法进行查询,下面是示例.   --通过子节点查询父节点WITH  TREE AS(  ...

  7. 02-C#入门(枚举、结构等)

    不要为了写笔记而学习!!! 其实学完一章再返回复习,然后做笔记,真的很费时间(电子书还不方便).当然,复习带来的价值,是值得花时间的. 枚举.结构 枚举的类型有限(short.byte...)且是相同 ...

  8. [python实现设计模式]-3.简单工厂模式-触宝开放平台

    预备知识: 开放封闭原则(Open-Closed Principle OCP) Software entities(classes,modules,functions etc) should open ...

  9. Android Studio 修改字体

    修改字体(font)大小(size)   本文引用: http://blog.csdn.net/caroline_wendy/article/details/21876727   Android St ...

  10. prototype.js简介

    prototype.js简介 2007-11-21 14:22 prototype.js是一个很强大的Javascript函数库,它可以让你很轻松的使用一些特效,实现AJAX的功能.虽然prototy ...