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

一:有些杀病毒软件会去扫描您的Web.Config文件,那时Session肯定掉,这是微软的说法。
二:程序内部里有让Session掉失的代码,及服务器内存不足产生的。
三:程序有框架页面和跨域情况。

第一种解决办法是:使杀病毒软件屏蔽扫描Web.Config文件(程序运行时自己也不要去编辑它)
第二种是检查代码有无Session.Abandon()之类的。
第三种是在Window服务中将ASP.NET State Service 启动。

今天遇到asp.net session丢失了,然后又回来了,session里存储的是用户信息,最后导致每次刷新是不同的用户或是未登录状态。很让人吐血的问题。
搞了2天没搞出来,最后重写了验证机制,都放在了cookie里了,session不敢用了。
今天发现,问题是由于设置iis6的 应用程序池内的性能内的最大web进程数导致的,由于session默认是存放在web进程里的,进程开多了,导致session不能共享,每次刷新又由不同的进程来处理,所以就导致刷新出来不同的用户,前提是在本机登录过这些用户。
解决方法可以用stateserver或者用sqlserver模式来存储session。
由于google没搜到类似问题,所以这里拿出来说一下这个让我头痛了2天,最后修改了n多页面的问题。

asp.net session丢失网上收集
Asp.net 默认配置下,Session莫名丢失的原因及解决办法
正常操作情况下Session会无故丢失。因为程序是在不停的被操作,排除Session超时的可能。另外,Session超时时间被设定成60分钟,不会这么快就超时的。

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

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

原因:
由于Asp.net程序是默认配置,所以Web.Config文件中关于Session的设定如下:

我们会发现sessionState标签中有个属性mode,它可以有3种取值:InProc、StateServer?SQLServer(大小写敏感)。默认情况下是InProc,也就是将Session保存在进程内(IIS5是aspnet_wp.exe,而IIS6是W3wp.exe),这个进程不稳定,在某些事件发生时,进程会重起,所以造成了存储在该进程内的Session丢失。

哪些情况下该进程会重起呢?微软的一篇文章告诉了我们:
1、配置文件中processModel标签的memoryLimit属性
2、Global.asax或者Web.config文件被更改
3、Bin文件夹中的Web程序(DLL)被修改
4、杀毒软件扫描了一些.config文件。
更多的信息请参考PRB: Session variables are lost intermittently in ASP.NET applications

解决办法:
前面说到的sessionState标签中mode属性可以有三个取值,除了InProc之外,还可以为StateServer、SQLServer。这两种存Session的方法都是进程外的,所以当aspnet_wp.exe重起的时候,不会影响到Session。网站友情链接

现在请将mode设定为StateServer。StateServer是本机的一个服务,可以在系统服务里看到服务名为ASP.NET State Service的服务,默认情况是不启动的。当我们设定mode为StateServer之后,请手工将该服务启动。

这样,我们就能利用本机的StateService来存储Session了,除非电脑重启或者StateService崩掉,否则Session是不会丢的(因Session超时被丢弃是正常的)。

Session丢失的解决办法小结相关推荐

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

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

  2. Session丢失的解决办法小结(转)

    sessionState 的Timeout),其主要原因有三种. 一:有些杀病毒软件会去扫描您的Web.Config文件,那时Session肯定掉,这是微软的说法. 二:程序内部里有让Session掉 ...

  3. 模式窗口(Modal Dialog) 导致 Session丢失的解决办法

    模式窗口就是不处理它就没法处理父窗口,而非模式对话框就是不用先处理此对话框也可以处理父窗口. 在使用Modal Dialog的时候,弹出多个页面会导致页面新页面session 丢失, 需要重新 log ...

  4. ASP.NET 2.0中的Session状态丢失的解决办法

    ASP.NET 2.0引进了不让脚本使用的HttpOnly的cookie,,通过客户端脚本执行的某些操作可能会使session丢失. 解决办法:在global.asax中设置HttpOnly属性为Fa ...

  5. 计算机中缺少d3dx9_35.dll,d3dx9_35.dll丢失怎么办-d3dx9_35.dll丢失的解决办法

    在使用计算机过程中,遇到d3dx9_35.dll丢失这种情况,该怎么办呢?那么现在小编就将和大家讲解一下d3dx9_35.dll丢失的解决办法,有需要的朋友可以来看看哦,希望可以帮助到大家. 一.如果 ...

  6. Source InSight context 窗口丢失的解决办法

    我没关si的情况下强制关机导致的 Source InSight context 窗口丢失的解决办法 (2010-09-03 13:35:45) 转载▼     今天早晨改改CLI,上了趟WC,回来发现 ...

  7. nginx导致的session丢失的解决方法

    nginx导致的session丢失的解决方法 参考文章: (1)nginx导致的session丢失的解决方法 (2)https://www.cnblogs.com/aoyihuashao/p/9058 ...

  8. win10系统更新后文件丢失的解决办法

    win10系统更新后文件丢失的解决办法 一.下载CCleaner的免费版Recuva软件 win10更新系统后,文件夹中的文件丢失了.百度了很久,一开始是参考了这个链接:win10系统更新导致文件丢失 ...

  9. 【acadres.dll文件丢失怎么办】acadres.dll文件丢失的解决办法

    acadres.dll文件丢失怎么办?acadres.dll是一个windows系统中必备的dll文件,该类型文件的全称为Dynamic Link Library,意思就是动态链接库,不过各位小伙伴不 ...

最新文章

  1. (转)ZeroMQ的模式-Requset-Reply
  2. 惠普计算机电源怎么设置充电,惠普电脑怎么用外接电源时不用电池怎样设置的...
  3. Android开发之多Fragment切换优化
  4. Windows环境安装运行:Angular.js
  5. python输入一个人的名字_怎样用c语言做到输入一个人的名字才会输出一个心?
  6. Laravel Passport里的授权类型介绍
  7. 计算机永远无法处理日语所具有的暧昧性,计算机永远无法处理日语所具有的暧昧性。( )...
  8. Apoll进阶课程㉞丨Apollo ROS原理—3
  9. html-css样式表
  10. java 命令设计模式_Java设计模式之命令设计模式
  11. 2018.10.24
  12. react給變量賦值并列元素
  13. 渝粤题库 陕西师范大学 《教育科学研究方法》作业
  14. matlab中的插值计算函数,MATLAB中的插值函数|全国大学生数学建模竞赛(CUMCM)|MATLAB技术论坛 - Powered by Discuz!...
  15. Salt Returners-作业结果数据返回器的使用与定制开发方法
  16. java redis锁_Java中Redis锁的实现
  17. 定时任务ScheduledExecutorService
  18. 【风马一族_win10设置热点】win10无法开启热点怎么办
  19. 计算机硬件及冯诺伊曼结构
  20. Could not retrieve mirrorlist

热门文章

  1. 中国工程院谭建荣:人工智能应用得再好,最核心的算法不行,创新能力就不行
  2. 五大主流深度学习框架Google趋势比较
  3. openCV和Tensorflow起步
  4. Matlab中的CVX工具包安装
  5. kubernetes(k8s)之yaml文件详解
  6. 019_Vue子组件向父组件传值
  7. java 判断日期是同一天_如何检查Java中的两个日期是否在同一天
  8. python每月定时_如何用Python写一个每分每时每天的定时程序
  9. python3的socket_python2 与 python3 socket编程的一点小区别
  10. 谷歌设计规范_[图]谷歌Play商城启用圆角矩形图标设计规范 6月24日强制生效