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:

图片说明
图3.ascx后台cs代码:
图片说明

图4.用于处理ajax请求的ashx文件

图片说明
图5.在aspx页面上调用这个控

图片说明
上面的代码在正常情况下可以正常运行,但是在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 加个随机数试试