原标题:Session丢失的解决办法小结

对于ASP、PHP网站且使用我司虚拟主机的用户,如果超时太短,可提交工单申请更换应用程序池(该应用程序池设置为只按时间回收,回收时间30分钟)。

如果更换程序池后还是存在超时问题,请参考如下教程(.NET网站不能更换程序池,请直接参考如下教程检查处理):

SessionState 的Timeout,其主要原因有三种

一:有些杀病毒软件会去扫描您的Web.Config文件,那时Session肯定掉,这是微软的说法。

二:程序内部里有让Session掉失的代码,及服务器内存不足产生的。

三:程序有框架页面和跨域情况。

对于使用我司虚拟主机产品的网站,第一种情况及第二种中的内存不足未发生过。

第一种解决办法是使杀病毒软件屏蔽扫描Web.Config文件(程序运行时自己也不要去编辑它) 。

第二种是检查代码有无Session.Abandon()之类的。

第三种是在Window服务中将ASP.NET State Service 启动(我司虚拟主机产品已启动该服务)。

遇到asp.net session丢失了,然后又回来了,session里存储的是用户信息,最后导致每次刷新是不同的用户或是未登录状态。

最后重写了验证机制,都放在了cookie里了,session不敢用了。

问题是由于设置iis6的应用程序池内的性能内的最大web进程数导致的,由于session默认是存放在web进程里的,进程开多了,导致session不能共享,每次刷新又由不同的进程来处理,所以就导致刷新出来不同的用户,前提是在本机登录过这些用户。

解决方法可以用stateserver或者用sqlserver模式来存储session。

我司虚拟主机不存在这种情况,排查时可忽略。

asp.net session丢失网上收集

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

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

原因:

由于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文件。

解决办法:

前面说到的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通过其他电脑的StateService来保存。具体的修改是这样的。同样还在sessionState标签中,有个stateConnectionString='tcpip=127.0.0.1:42424'属性,其中有个ip地址,默认为本机(127.0.0.1),你可以将其改成你所知的运行了StateService服务的电脑IP,这样就可以实现位于不同电脑上的Asp.net程序互通Session了。

如果你有更高的要求,需要在服务期重启时Session也不丢失,可以考虑将mode设定成SQLServer,同样需要修改sqlConnectionString属性。关于使用SQLServer保存Session的操作,请访问这里。

在使用StateServer或者SQLServer存储Session时,所有需要保存到Session的对象除了基本数据类型(默认的数据类型,如int、string等)外,都必须序列化。只需将[Serializable]标签放到要序列化的类前就可以了。

如:

[Serializable]

public class MyClass

{

......

}

责任编辑:

iis php session丢失,Session丢失的解决办法小结相关推荐

  1. Session莫名丢失的原因及解决办法[转载]

    Asp.net 默认配置下,Session莫名丢失的原因及解决办法 正常操作情况下Session会无故丢失.因为程序是在不停的被操作,排除Session超时的可能.另外,Session超时时间被设定成 ...

  2. Frameset导致Cookies和Session丢失的原因及解决办法

    参考资料 1 Frameset导致Cookies和Session丢失的原因及解决办法 http://blog.csdn.net/zl_c/article/details/1742775  2 使用fr ...

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

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

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

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

  5. Hyper-V下的Linux虚拟机网卡丢失问题原因及解决办法

    Hyper-V下的Linux虚拟机网卡丢失问题原因及解决办法 虚拟化大势所趋 公司推行了虚拟化,全部用的是Microsoft Windows 2008 R2 Enterprise with Hyper ...

  6. mouseup 左键_javascript中mouseup事件丢失的原因与解决办法

    这篇文章主要跟大家介绍了关于Javascript中mouseup事件丢失的原因与解决办法的相关资料,文中给出详细的示例代码供大家参考学习,需要的朋友们下面跟着小编一起来学习学习吧. 前言 当实现类似E ...

  7. 安装VS2003时IIS下面缺少FrontPage2000服务器扩展的解决办法

    安装VS2003时IIS下面缺少FrontPage2000服务器扩展的解决办法 IIS安装完后,一直没找到如何安装Frontpage扩展,导致ASP.net无法使用,通过修改inf文件来完成.方法如下 ...

  8. 护卫神php返回404,护卫神IIS设置public目录为根目录的解决办法

    原标题:护卫神IIS设置public目录为根目录的解决办法 最近有人问小编,在使用护卫神或者主机宝等IIS环境配置PHP的时候,不能把public设置为网站根目录,这个问题无法搜索到真实解决办法,那么 ...

  9. mysql客户端连接10060,Navicat远程连接MySQL出现10060解决办法小结

    Navicat远程连接MySQL出现10060解决办法小结 Navicat远程连接MySQL出现10060解决办法小结 问题背景:服务器环境使用的是lnmp一键包,mysql版本5.7.26,phpM ...

最新文章

  1. 虚拟化--046 利用web client查看存储
  2. hdu 1421 动态规划
  3. 1. face_generate.py
  4. Jquery事件、冒泡、委托与节点
  5. Python之struct介绍及详解(与C/C++通信结构体的交互)
  6. python实现随机抽取答题_如何在python中实现随机选择
  7. (转)淘淘商城系列——发布dubbo服务
  8. matlab 给参数赋值,未对输出参数赋值 求大神帮忙解惑
  9. 能源路由器入门必读:面向能源互联网的架构和功能
  10. EditPlus中文绿色破解版
  11. php老虎杠子鸡虫条件,老虎、杠子、鸡——在游戏中学习
  12. android app 马甲包,教你一招APP如何快速定制马甲包
  13. java图片的在线预览_【Java】web实现图片在线预览
  14. 爬取虎牙TV全站主播信息
  15. 王者荣耀-是用什么编程语言开发的
  16. Android Studio模拟器报错:Could not initialize DirectSoundCapture
  17. 轻生女孩跳下地铁站台被4节车厢滑过生还(图)
  18. 倒立摆的实现 6.定时器中断和其余初始化
  19. IntelliJ IDEA设置显示内存指示器的几种方法
  20. 综合案例注册(register)

热门文章

  1. 如何把照片压缩到20k一下_如何将图像压缩10倍?阿里工程师有个大胆的想法!...
  2. 两个场景怎样合在一起_Spring AOP应用场景你还不知道?这篇一定要看
  3. 神经网络与中心场近似
  4. java延迟函数_Java 8:延迟计算
  5. Matlab中gradient函数的使用方法
  6. springboot+多线程简单实现
  7. 【总结整理】《人人都是产品经理》---读后感
  8. Linux free -m 详细说明
  9. Composer 中国全量镜像(二)
  10. Linux运维课程-Mysql之复制(2)