关于asp.net Session丢失问题的总结
asp的Session是具有进程依赖性的。ASP Session状态存于IIS的进程中,也就是inetinfo.exe这个程序。所以当inetinfo.exe进程崩溃时,这些信息也就丢失。另外,重起或者关闭IIS服务都会造成信息的丢失。
asp.net Session的实现
asp.net的Session是基于HttpModule技术做的,HttpModule可以在请求被处理之前,对请求进行状态控制,由于Session本身就是用来做状态维护的,因此用HttpModule做Session是再合适不过了。
原因1:
bin目录中的文件被改写,asp.net有一种机制,为了保证dll重新编译之后,系统正常运行,它会重新启动一次网站进程,这时就会导致Session丢失,所以如果有access数据库位于bin目录,或者有其他文件被系统改写,就会导致Session丢失
原因2:
文件夹选项中,如果没有打开“在单独的进程中打开文件夹窗口”,一旦新建一个窗口,系统可能认为是新的Session会话,而无法访问原来的Session,所以需要打开该选项,否则会导致Session丢失
原因3:
似乎大部分的Session丢失是客户端引起的,所以要从客户端下手,看看cookie有没有打开
原因4:
Session的时间设置是不是有问题,会不会因为超时造成丢失
原因5:
IE中的cookie数量限制(每个域20个cookie)可能导致session丢失
原因6:
使用web garden模式,且使用了InProc mode作为保存session的方式
解决丢失的经验
1. 判断是不是原因1造成的,可以在每次刷新页面的时候,跟踪bin中某个文件的修改时间
2. 做Session读写日志,每次读写Session都要记录下来,并且要记录SessionID、Session值、所在页面、当前函数、函数中的第几次Session操作,这样找丢失的原因会方便很多
3. 如果允许的话,建议使用state server或sql server保存session,这样不容易丢失
4. 在global.asa中加入代码记录Session的创建时间和结束时间,超时造成的Session丢失是可以在SessionEnd中记录下来的。
5. 如果有些代码中使用客户端脚本,如javascript维护Session状态,就要尝试调试脚本,是不是因为脚本错误引起Session丢失
关于asp.net Session丢失问题的总结相关推荐
- Asp.Net Session 丢失的奇怪问题,求救!
Asp.Net Session 丢失的奇怪问题,求救 我遇到一个很奇怪的 asp.net 问题,我有三个页面: login.aspx :实现输入帐号密码,将帐号(yh :用户)及权限 ( js_id ...
- ASP.NET Session丢失问题原因及解决方案[转]
不得不老调重弹 正常操作情况下会有ASP.NET Session丢失的情况出现.因为程序是在不停的被操作,排除Session超时的可能.另外,Session超时时间被设定成60分钟,不会这么快就超时的 ...
- asp.net Session丢失问题
首先了解一下asp.net Session的实现 asp.net的Session是基于HttpModule技术做的,HttpModule可以在请求被处理之前,对请求进行状态控制,由于Session本身 ...
- ASP.NET网站SESSION丢失的问题
有很多用户发现ASP.NET网站的Session会在很短的时间内丢失,需要经常重新登录. 这是因为在ASP.NET程序中,Session的默认保存方式为"InProc".服务器限制 ...
- Session丢失的解决办法小结
最近在做ASP.NET项目时,测试网站老是取不出Session中的值,在网上搜索了一下,找到一些解决方法,记录在这里.最后使用存储在StateServer中的办法解决了问题 SessionState ...
- iis php session丢失,Session丢失的解决办法小结
原标题:Session丢失的解决办法小结 对于ASP.PHP网站且使用我司虚拟主机的用户,如果超时太短,可提交工单申请更换应用程序池(该应用程序池设置为只按时间回收,回收时间30分钟). 如果更换程序 ...
- [转]ASP.NET 状态服务 及 session丢失问题解决方案总结
转自[http://blog.csdn.net/high_mount/archive/2007/05/09/1601854.aspx] 最近在开发一ASP.NET2.0系统时,在程序中做删除或创建文件 ...
- ASP.net session 使用总结(2)
Session又称为会话状态,是Web系统中最常用的状态,用于维护和当前浏览器实例相关的一些信息.举个例子来说,我们可以把已登录用户的用户名放在Session中,这样就能通过判断Session中的某个 ...
- ASP.NET Session 详解
本文仅代表作者个人观点,正确与否请读者自行研究! 阅读本文章之前的准备 阅读本文章前,需要读者对以下知识有所了解.否则,阅读过程中会在相应的内容上遇到不同程度的问题. 懂得ASP/ASP.NET编程 ...
最新文章
- Java中++i和i++的区别
- php session already send by ……
- python基础高频_面试题(一)
- ubuntu新建用户后,终端下方向键和tab键不可用的解决方法
- 信安精品课:第1章网络信息安全概述精讲笔记
- Facebook去年从中国获50亿美元广告收入 占营收10%
- 特斯拉、华为等竞争升级,国产芯片实现突破,自动驾驶过去这一年
- UVa 400 Unix Is
- 全网首发:安卓GLSurfaceView绘制显示YUV(NV21)
- 数据结构知识点总结pdf_闭关修炼31天,“啃完”346页pdf,我终于四面拿下阿里offer!...
- 【lvgl 学习】怎么让LVGL支持GBK编码
- 从《乔家大院》悟企业留人
- 硬盘分区表错误与解决办法
- 我的Java和Android之路------菜冬瓜
- walking机器人仿真教程-查看仿真环境相关话题
- java中int count什么意思_int groupCount()
- S3C2440 I2C总线控制
- Android实现一个可以移动,删除,保存,自定义样式的便签app
- Arch的双显卡驱动
- linux设置密码复杂程度