session丢失,大家发表一下看法 我有个网站运行在wins2003的系统上,然后session丢失得很厉害。一下就丢,不用5秒就丢大家遇过吗?怎么解决呢。200分的帖子。大家都应该多多少少有遇到。多讨论一下。版主也支持下。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不会吧,我也用win03没出现过啊 iis有Session的bug,MS至今未能解决 那重装IIS是不是有可能解决啊!?! <sessionState timeout="30" mode="StateServer" /> 首先在IIS中设置会话过期时间,检查有没有session.abandon(),我也遇到过这样的问题,最后还是使用cookie解决,但是大量的使用cookie显然不是一个理想的选择,我感觉这个还是在服务器上作文章,仅仅在程序上找错误可能是不会有结果的,还是看看服务器的设置ba 感谢hrabeyond提供的链接,我详细看看。 还有一个也不能忽视的原因是硬件,web服务器的内存能多大尽量多大,session是个非常好资源的东西,我做的程序也出现过丢session的问题,但是到了客户那里,客户的机器硬件配置很强,几乎没有发生session丢失的问题。 另外,程序中尽可能的少用活着不用session,现在多位采用存储到加密文件中的技术,减少这种问题的发生,同时对客户服务器的要求也降了下来。 很正常。既然要使用web服务器,而web服务器本来就是经常靠回收应用程序来自我维护的,那么当初就不应该只依赖于Session集合来保存数据,从一开始写asp.net程序就应该假设每隔5分钟就会丢失Session集合的数据一次。msdn中也对应用程序状态管理,Inproc以及其它管理方式的异同,等做了含糊倒是全面的说明。写asp.net入门书的人则根本是只抄袭msdn最肤浅的部分,当然不会仔细告诉你这些状态管理问题。当你自己买服务器,这个情况也许可以很少发生。如果你只是在开发机器上测试,可能看不到这个情况。但是如果你跟好几百人一起租一台服务器,那么这种情况经常发生。 Session里怎么设置的,看看吧,不过按理说应该是默认半小时的 我本机xp测试好好的挂上win2003 就session出错 同样没办法解决 另外: 一:有些杀病毒软件会去扫描您的Web.Config文件,那时Session肯定掉,这是微软的说法。 二:程序内部里有让Session掉失的代码,及服务器内存不足产生的。 三:程序有框架页面和跨域情况。 第一种解决办法是:使杀病毒软件屏蔽扫描Web.Config文件(程序运行时自己也不要去编辑它) 第二种是检查代码有无Session.Abandon()之类的。 第三种是在Window服务中将ASP.NET State Service 启动。 <authentication mode="Forms"> <forms name="loginFrom" loginUrl="login.aspx" defaultUrl="index.htm" protection="All" path="/" timeout="36000"/> </authentication>可以采用这种方式进行session的判断 身份票不过期 你就从身份票里面更新session的内容 1.IIS是可以设置的2.代码里面也是可以设置的,你是否设置,为什么5秒就T出了3.跟系统,iis没问题(正确安装iis情况下),不然就是你程序问题 你可以吧Seesion的存储方式改成StateServer,然后去把ASP.NET State Service服务开启希望能帮到你 Session跟cookie 一起用啊 在IIS中配置自己的应用程序检查下配置特别是工作进程的回收,另外在网站的配置中检查下Session失效时间设置 建议重新配置一下环境,或则把session定时试试呢 很明显,用Cookie的有点远远大于Sesion 我也是2003啊,貌似没出现过这种情况!通常都是正常过期的!不过win2003确实感觉用着怪怪的!不爽 这样做:1:把session保存到aspnetStateService中,并将这个服务启动并设为自启动(默认不启动,手动)。2:把session保存到SQLServer中。 1. 先看看Session存放的方式是不是StateServer,如果是Inproc确实容易丢失,网上有多篇文章说这个问题2. 微软的Forms验证用的也是Cookie,不也安全着么 不知道你用session保存什么信息呢?如果只是用户信息,那么当你访问一个页面的时候,首先把用户信息的值保存到隐藏控件中,每次访问页面时先判断session丢了没,丢了,就读取隐藏控件中的值,从新访问绑定?web.config存储方式改成StateServer,应该是没问题了,服务器最好自己买的,性能牛X点。 我一般这样做Session保存登陆状态 COOKIE保存加密过的帐户和密码当Session丢失时 提取COOKIES信息自动登陆重新建立Session 应该是服务器的原因,还有就是,session有三种保存方式,你不要放在内存里面,给放到数据库里面或者状态服务里面试试 session丢失是你的程序有问题,可能是那个地方有错误造成的session丢失,解决的方法还是从程序本身入手,不应该是配置的问题! 怎样查看 存放方式?如何把session保存到aspnetStateService中? 不会是你的session的时间改了吧,改下时间、 Session的缺点就是易丢失!不好,Cookie也不好, 用户浏览器禁用了Cookie 那什么好呀 禁用了Cookie? 那Session一样用不了 当然可以参数化Session 不过显然没有人喜欢 我经常遇到Cookie丢失的情况。cookie里面如果保存的数据多的话,就有可能造成丢失,但是过一段时间可能就会恢复。如果cookie的问题解决的session 的原因应该一样好解决。 1,启用session的state server模式。依赖于asp.net状态服务。2,如果要求更高,采用sqlserver模式,session存在数据库里面,这种可靠性高。这个模式需要依赖于SQL SERVER AGENT服务。 session丢失原因很多删除目录,更改Global.asax文件,重启IIS等等,sesson都会丢失 IE中的cookie数量限制 Session的时间设置 使用StateServer模式保存session或数据库方式 做Session读写日志,每次读写Session都要记录下来,并且要记录SessionID、Session值、所在页面、当前函数、函数中的第几次Session操作,这样找丢失的原因会方便很多 如果允许的话,建议使用state server或sql server保存session,这样不容易丢失 在global.asa中加入代码记录Session的创建时间和结束时间,超时造成的Session丢失是可以在SessionEnd中记录下来的。 应用程序域所在的进程有通信吗?理解一下webfarm 和webgarden在看一下服务器的配置 这就可以了,记得启动服务器的asp.Net状态服务asp.net中,只要有对网站内的文件目录进行删除操作,如果session是保存在inproc中的,基本上100%丢失session 首先这种已经被应用了几年的技术你不要抱有侥幸心理,不可能有BUG。你要确定两点:1、是不是Session丢了?2、为什么丢了?如何丢的?何时丢的?确定是不是丢失了Session恐怕比较容易,Session里面某个值存进去取出来没了。回答第二个问题比较困难:使用性能监视器,看看Session的计数机变化。同时简化问题,在简单场景下是否存在这个问题,慢慢复杂化问题,还原真实场景,找出问题根源。 Session是有丢失的BUG 但是也至于像楼主这样严重的吧 补充说明一下:这种session存储在系统进程中,就算把IIS关闭了,session也不会丢失,但速度上比intro要慢点 没遇到过。一般就存个用户名。自己的服务器。没见到丢失。除非动了IIS或程序。 <sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" stateNetworkTimeout="10" sqlConnectionString="data source=127.0.0.1; Integrated Security=SSPI" cookieless="false" timeout="30"/> 看一下Session丢失是不是与错误有关系吧,看看IIS日志里的东西,应该能够得到些线索还有,也可以看看单独给网站配置个应用程序池 在session中设置时间,我们都是这么做的 StateServer STATE 换这两种模式。。可以定义保存时间的。相对比较稳定。 MS 都解决不了的, 建议你用cookies 来存储,虽说不安全吧, 但也是解决的方法啊! 如果客户端禁用了cookie,每个地址后带个sessionID,肯定也不安全啊,所有很多网站不支持COOKIES是不允许访问的。 关于触发DIV滚动条事件的问题 用linq绑定Repeater后问题 怎样通过JavaScript向WebService传递C#对象集合,如List<MyClass>? 登陆站点-〉web服务-〉客户端,获取session的问题。 datagrid问题,高手点,急急 请问:在WEB应用中,鼠标点击DataGrid的某个cell时,如何实现选中该cell的效果?怎样修改该cell的值? 数据UPdate出错 自定义控件状态的问题 WEB页面上的报表 一个小问题-菜! .net学到会做什么了~可以去应聘了》? 问一下IIS6中ip地址和域名限制中的ip列表是放在哪个文件中
另外,程序中尽可能的少用活着不用session,现在多位采用存储到加密文件中的技术,减少这种问题的发生,同时对客户服务器的要求也降了下来。
挂上win2003 就session出错
同样没办法解决
一:有些杀病毒软件会去扫描您的Web.Config文件,那时Session肯定掉,这是微软的说法。
二:程序内部里有让Session掉失的代码,及服务器内存不足产生的。
三:程序有框架页面和跨域情况。
第一种解决办法是:使杀病毒软件屏蔽扫描Web.Config文件(程序运行时自己也不要去编辑它)
第二种是检查代码有无Session.Abandon()之类的。
第三种是在Window服务中将ASP.NET State Service 启动。
<forms name="loginFrom" loginUrl="login.aspx" defaultUrl="index.htm" protection="All" path="/" timeout="36000"/>
</authentication>
可以采用这种方式进行session的判断 身份票不过期 你就从身份票里面更新session的内容
2.代码里面也是可以设置的,你是否设置,为什么5秒就T出了
3.跟系统,iis没问题(正确安装iis情况下),不然就是你程序问题
希望能帮到你
1:把session保存到aspnetStateService中,并将这个服务启动并设为自启动(默认不启动,手动)。
2:把session保存到SQLServer中。
2. 微软的Forms验证用的也是Cookie,不也安全着么
Session保存登陆状态 COOKIE保存加密过的帐户和密码
当Session丢失时 提取COOKIES信息自动登陆重新建立Session
怎样查看 存放方式?如何把session保存到aspnetStateService中?
不好,Cookie也不好, 用户浏览器禁用了Cookie
那什么好呀
2,如果要求更高,采用sqlserver模式,session存在数据库里面,这种可靠性高。
这个模式需要依赖于SQL SERVER AGENT服务。
删除目录,更改Global.asax文件,重启IIS等等,sesson都会丢失
IE中的cookie数量限制
Session的时间设置
使用StateServer模式保存session或数据库方式
做Session读写日志,每次读写Session都要记录下来,并且要记录SessionID、Session值、所在页面、当前函数、函数中的第几次Session操作,这样找丢失的原因会方便很多
如果允许的话,建议使用state server或sql server保存session,这样不容易丢失
在global.asa中加入代码记录Session的创建时间和结束时间,超时造成的Session丢失是可以在SessionEnd中记录下来的。
在看一下服务器的配置
这就可以了,记得启动服务器的asp.Net状态服务
asp.net中,只要有对网站内的文件目录进行删除操作,如果session是保存在inproc中的,基本上100%丢失session
1、是不是Session丢了?
2、为什么丢了?如何丢的?何时丢的?确定是不是丢失了Session恐怕比较容易,Session里面某个值存进去取出来没了。回答第二个问题比较困难:
使用性能监视器,看看Session的计数机变化。
同时简化问题,在简单场景下是否存在这个问题,慢慢复杂化问题,还原真实场景,找出问题根源。
补充说明一下:这种session存储在系统进程中,就算把IIS关闭了,session也不会丢失,但速度上比intro要慢点
建议你用cookies 来存储,虽说不安全吧, 但也是解决的方法啊!
如果客户端禁用了cookie,每个地址后带个sessionID,肯定也不安全啊,所有很多网站不支持COOKIES是不允许访问的。