asp中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丢失问题的总结相关推荐

  1. Asp.Net Session 丢失的奇怪问题,求救!

    Asp.Net Session 丢失的奇怪问题,求救 我遇到一个很奇怪的 asp.net 问题,我有三个页面: login.aspx :实现输入帐号密码,将帐号(yh :用户)及权限 ( js_id ...

  2. ASP.NET Session丢失问题原因及解决方案[转]

    不得不老调重弹 正常操作情况下会有ASP.NET Session丢失的情况出现.因为程序是在不停的被操作,排除Session超时的可能.另外,Session超时时间被设定成60分钟,不会这么快就超时的 ...

  3. asp.net Session丢失问题

    首先了解一下asp.net Session的实现 asp.net的Session是基于HttpModule技术做的,HttpModule可以在请求被处理之前,对请求进行状态控制,由于Session本身 ...

  4. ASP.NET网站SESSION丢失的问题

    有很多用户发现ASP.NET网站的Session会在很短的时间内丢失,需要经常重新登录. 这是因为在ASP.NET程序中,Session的默认保存方式为"InProc".服务器限制 ...

  5. Session丢失的解决办法小结

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

  6. iis php session丢失,Session丢失的解决办法小结

    原标题:Session丢失的解决办法小结 对于ASP.PHP网站且使用我司虚拟主机的用户,如果超时太短,可提交工单申请更换应用程序池(该应用程序池设置为只按时间回收,回收时间30分钟). 如果更换程序 ...

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

    转自[http://blog.csdn.net/high_mount/archive/2007/05/09/1601854.aspx] 最近在开发一ASP.NET2.0系统时,在程序中做删除或创建文件 ...

  8. ASP.net session 使用总结(2)

    Session又称为会话状态,是Web系统中最常用的状态,用于维护和当前浏览器实例相关的一些信息.举个例子来说,我们可以把已登录用户的用户名放在Session中,这样就能通过判断Session中的某个 ...

  9. ASP.NET Session 详解

    本文仅代表作者个人观点,正确与否请读者自行研究! 阅读本文章之前的准备 阅读本文章前,需要读者对以下知识有所了解.否则,阅读过程中会在相应的内容上遇到不同程度的问题. 懂得ASP/ASP.NET编程  ...

最新文章

  1. Java中++i和i++的区别
  2. php session already send by ……
  3. python基础高频_面试题(一)
  4. ubuntu新建用户后,终端下方向键和tab键不可用的解决方法
  5. 信安精品课:第1章网络信息安全概述精讲笔记
  6. Facebook去年从中国获50亿美元广告收入 占营收10%
  7. 特斯拉、华为等竞争升级,国产芯片实现突破,自动驾驶过去这一年
  8. UVa 400 Unix Is
  9. 全网首发:安卓GLSurfaceView绘制显示YUV(NV21)
  10. 数据结构知识点总结pdf_闭关修炼31天,“啃完”346页pdf,我终于四面拿下阿里offer!...
  11. 【lvgl 学习】怎么让LVGL支持GBK编码
  12. 从《乔家大院》悟企业留人
  13. 硬盘分区表错误与解决办法
  14. 我的Java和Android之路------菜冬瓜
  15. walking机器人仿真教程-查看仿真环境相关话题
  16. java中int count什么意思_int groupCount()
  17. S3C2440 I2C总线控制
  18. Android实现一个可以移动,删除,保存,自定义样式的便签app
  19. Arch的双显卡驱动
  20. linux设置密码复杂程度

热门文章

  1. chcapter 2 量子力学介绍
  2. poj 2337 Catenyms 【欧拉路径】
  3. Windows App开发之集成设置、帮助、搜索和共享
  4. wowza官方测试报告
  5. spring加载properties文件
  6. GitLab 简易指引(二):GitLab Runner 安装与配置
  7. 用HttpWebRequest抓取网页,尝试自动重定向的次数太多”的错误,
  8. java 和 mysql 获取周 星期 的第一天 最后一天 或者 月的 日期(字符串转日期,日期转字符串,日期加减)...
  9. UI设计要学哪些软件
  10. 使用opencv自带的融合函数