如何解决设置Session保存在StateServer后引起WebService/WebMethod无法异步获取Session

项目中有一个文件上传功能,需要显示文件上传进度。于是使用PageMethods 调用WebService/WebMethod 。

在demo中测试一切正常。但是转移到项目中之后无法异步刷新文件上传进度。

调试后发现原因是异步刷新时,获取的session信息不是文件上传页面更新的最新信息。

又发现 web.config 中 有如下设置

 <sessionState mode="StateServer" stateConnectionString="tcpip=localhost:42424" cookieless="false" timeout="30"/>

注释掉之后异步刷新可正常使用,因此得出结论

设置Session保存在StateServer后引起了WebService/WebMethod无法异步获取Session

但是注释掉之后会造成会话意外丢失。

查找了各种资料都没有找到解决方式 。

后来无意间想起了 Application也可以储存对象 

so:用Application  代替 session

 

 

posted @ 2014-06-25 18:36  AndSir  阅读(312)  评论(0编辑  收藏  举报
http://www.andsir.cn