问题描述
- asp.net sessionState设置后session值永远第一个怎么回事?
-
1.将Session的mode设置为StateServer以后,发现Session取值老是取到第一个赋值的值。打个比方 比如Session["V"]="1236",一会不管你怎么赋值,Session["V"]=“aaa”,调式的时候发现Session["V"]的值是aaa,但是实际取的值就是Session["V"]=“1236”。上面是简单描述,下面的代码:(具体问题在图片最后)
(用ajax实现向后台获取进度条的值,Session用来保存进度条的值)
图2.ascx用户控件前台js:
图4.用于处理ajax请求的ashx文件
上面的代码在正常情况下可以正常运行,但是在webconfig里面加了..session的配置之后,就出现了问题加了这句:
主要是:图3里面的SetValue函数调式发现 Session["McsBarValue"] = value;一直都是在变的,
这个value就是图5里面的i,但是在图4里面(ashx文件)发现context.Session["McsBarValue"]一直都是0,这个0就是开始的第一个值。而且这两个SessionID是一样的。
但是只要我把去了就一切正常了。
我怀疑过是Session缓存的问题,但是不懂怎么删除缓存,因为全部都删掉的话,那保存登陆信息的Session也被清掉了
解决方案
我在web.config加了这句话就不对劲了。
去掉session就可以正常,但是时间会超时,但是加上这句话session的值却总是固定的,这是怎么回事呢?
解决方案二:
解决方案三:
< sessionState mode="StateServer" cookieless="false" timeout="30" stateConnectionString="tcpip=127.0.0.1:42424" stateNetworkTimeout="10"/>
解决方案四:
ajax Url 加个随机数试试
时间: 2024-12-22 15:50:23