How to fix the problem of " Session Lost "


感谢您使用微软产品。

首先,请您确认这个问题是否是由于下面的文章描述的问题导致的:

Q323752 PRB: Session Variables Are Lost If You Use FRAMESET
http://support.microsoft.com/support/kb/articles/q323/7/52.asp

然后,请您打开Web.config确认您正在使用的Session类型,是Inproc,SQLServer还是其它?建议您提供<sessionState>元素中的具体信息。

根据我的经验,如果您正在使用InProc类型的Session, 有一些原因确实会导致Session的丢失,比如说一些防病毒软件等。具体的信息,建议您参阅下面的微软知识库文章:

Q324772 PRB: Session Data Is Lost When You Use ASP.NET InProc Mode
http://support.microsoft.com/support/kb/articles/q324/7/72.asp

建议您参考下面的步骤进行troubleshooting:

1. 启用ASP.NET的Trace.

在您的WebForm中,加入:<%Page trace="true"...%>,确认不同的页面之间的Session ID是否相同。

2。改用URL Session.

默认情况下,浏览器端的Session ID保存在Cookies中,如果Cookies被禁用,或者IE存在问题,可能导致ASP.NET不能识别Session.

建议您使用URL Session, 这样浏览器端的Session ID 会被包括在URL中,跟浏览器端的Cookie没有关系:

到开Web.config, 修改<sessionState>, 把cookieless设置为true. 这样,浏览器端就不再使用cookies来保存SessionID, 您可以在URL中观察到对应的Session ID.

3。在合适的地方设置断点,然后通过QuickWatch, 来确认您的程序的执行逻辑,并通过QuickWatch来监视Session变量的值。

希望上面的信息对您有所帮助。

-微软全球技术中心 


IE中:
 有效的窗品包括
 1.Session对象只在建立Session对象的窗口中有效。
 2.在建立Session对象的窗口中新开链接的窗口

 无效的窗口包括
 1.直接启动IE浏览器的窗口
 2.不是在建立Session对象的窗口中新开链接的窗口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值