asp.net使用session丢失问题的解决办法

转载 2011年01月20日 09:10:00

asp.net使用session丢失问题的解决办法,我们在用asp.net开发程序的时候经常会遇到Session很不稳定,老是数据丢失。下面就是Session数据丢失的解决办法希望对您有好处。

1、在WEB.CONFIG文件中修改SESSION状态保存模式,如:<sessionState mode='StateServer' stateConnectionString='tcpip=127.0.0.1:42424' sqlConnectionString='data source=127.0.0.1;Trusted_Connection=yes' cookieless='true' timeout='180'/>

2、启动系统服务“ASP.NET状态服务 ”,系统默认是手动启动的

3、如果SESSION中保存的数据类型是自定义的,如结构,请在自定义数据类型处序列化会话状态,即在类或结构申明前加[Serializable]

完成以上3部,状态即可保存,但是在访问页面是浏览器显示的路径中增加了一段字符,如:(S(lto3j0eg25cztmqtxevm5tb4))

最近在做ASP.NET项目时,测试网站老是取不出Session中的值,在网上搜索了一下,找到一些解决方法,记录在这里。最后使用存储在StateServer中的办法解决了问题。


SessionState 的Timeout),其主要原因有三种。
一:有些杀病毒软件会去扫描您的Web.Config文件,那时Session肯定掉,这是微软的说法。
二:程序内部里有让Session掉失的代码,及服务器内存不足产生的。
三:程序有框架页面和跨域情况。
第一种解决办法是:使杀病毒软件屏蔽扫描Web.Config文件(程序运行时自己也不要去编辑它)
第二种是检查代码有无Session.Abandon()之类的。
第三种是在Window服务中将ASP.NET State Service 启动。


下面是帮助中的内容:
(ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/cpguide/html/cpconsessionstate.htm)
ASP.NET 提供一个简单、易于使用的会话状态模型,您可以使用该模型跨多个 Web 请求存储任意数据和对象。它使用基于字典的、内存中的对象引用(这些对象引用存在于 IIS 进程中)缓存来完成该操作。使用进程内会话状态模式时请考虑下面的限制:

使用进程内会话状态模式时,如果 aspnet_wp.exe 或应用程序域重新启动,则会话状态数据将丢失。这些重新启动通常会在下面的情况中发生:
在应用程序的 Web.config 文件的 <processModel> 元素中,设置一个导致新进程在条件被满足时启动的属性,例如 memoryLimit。
修改 Global.asax 或 Web.config 文件。
更改到 Web 应用程序的 /Bin 目录。
用杀毒软件扫描并修改 Global.asax 文件、Web.config 文件或 Web 应用程序的 /Bin 目录下的文件。
如果在应用程序的 Web.config 文件的 <processModel> 元素中启用了网络园模式,请不要使用进程内会话状态模式。否则将发生随机数据丢失。


还有这二种:

一:在第一个页面置了SESSION,然后REDIRECT去第二个页面。解决方法是在REDIRECT中设置endResponse为FALSE。

二: ASP.NET中使用了ACCESS数据库,而且数据库是放在bin目录中的。解决方法是不要放会更新的文件在BIN目录中。


Asp.net 默认配置下,Session莫名丢失的原因及解决办法


正常操作情况下Session会无故丢失。因为程序是在不停的被操作,排除Session超时的可能。另外,Session超时时间被设定成60分钟,不会这么快就超时的。

这次到CSDN上搜了一下帖子,发现好多人在讨论这个问题,然后我又google了一下,发现微软网站上也有类似的内容。

现在我就把原因和解决办法写出来。

 

session丢失是怎么解决的

原作者:http://www.verydemo.com/demo_c155_i3082.html session丢失是如何解决的 我就知道SESSION容易丢掉,也听说是放到数据库,但是我还是不了...
  • smallson4049
  • smallson4049
  • 2014年05月23日 11:44
  • 302

session丢失问题

郁闷!就在今天-项目验收的日子,居然遇到了session丢失问题,更郁闷的是我居然不知道还有session丢失问题。这样的直接结果就是验收推迟,郁闷阿!现在记录一下:首先是主页面show了一个模态窗口...
  • hxirui
  • hxirui
  • 2006年08月10日 20:09
  • 4806

ASP.NET 状态服务 及 session丢失问题解决方案总结

 最近在开发一ASP.NET2.0系统时,在程序中做删除或创建文件操作时,出现session丢失问题。在网上搜了不少资料,最后终于解决了,采用了如下方法:1、asp.net Session的实现:as...
  • High_Mount
  • High_Mount
  • 2007年05月09日 14:57
  • 8458

解决IE10中ASP.NET中Cookie或Session丢失问题

最近做网站,在本机测试没问题,放到服务器,用同样的浏览器访问,页面不兼容了不说,而且cookie丢失,登陆不上了,查了下资料,发现是IE10的漏洞。     这是ASP.NET2.0,3.5和4.0的...
  • wb09100310
  • wb09100310
  • 2014年12月22日 15:15
  • 999

tomcat跨域以及session丢失的解决方案

公司由于要搞跨域问题,写写大概思路! 一、后台配置。        1.在后台项目中导入:cors-filter-2.5.jar和java-property-utils-1.10.jar。...
  • u011403366
  • u011403366
  • 2016年12月15日 16:52
  • 2354

cas ajax登录方式跨域时session丢失问题解决

问题:在ie浏览器下,域名A通过iframe的方式把登录信息post到域名为B的cas服务器上,经过debug发现A获取loginTicket时的sessionId和post过去时的sessionid...
  • laigood12345
  • laigood12345
  • 2012年08月18日 10:09
  • 5600

asp.net多线程session 失效

HttpContext
  • n_e_e_d
  • n_e_e_d
  • 2014年06月03日 14:08
  • 945

初学ASP.NET开发web应用时遇到的一些常见问题和解决方法

第一个问题:在安装Microsoft Visual Studio .NET2003时,没有安装IIS,而是后安装的IIS,这种情况下,创建web应用时会报错解决方法:在命令提示窗口中运行如下命令即可:...
  • Improving
  • Improving
  • 2006年05月17日 13:39
  • 792

Session 跨域处理

    以前一直找办法来解决Session跨域共享的问题,最近看了一篇文章,感觉有点帮助,具体是否有用,还得自己来实践。     Asp.net程序的默认配置Web.Config文件中关于Sessio...
  • Dailen_Liao
  • Dailen_Liao
  • 2011年02月10日 11:16
  • 4707

解决跨域访问session丢失问题

问题: 前后端两个项目,前段访问后端api,前段用angularjs  后端用的express,设置res.header("Access-Control-Allow-Origin", “*”);可以...
  • rendiqi
  • rendiqi
  • 2017年08月27日 21:35
  • 861
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:asp.net使用session丢失问题的解决办法
举报原因:
原因补充:

(最多只允许输入30个字)