最近在做ASP.NET项目时,测试网站老是取不出Session中的值,在网上搜索了一下,找到一些解决方法,记录在这里。最后使用存储在StateServer中的办法解决了问题。
SessionState 的Timeout),其主要原因有三种。
一:有些杀病毒软件会去扫描您的Web.Config文件,那时Session肯定掉,这是微软的说法。
二:程序内部里有让Session掉失的代码,及服务器内存不足产生的。
三:程序有框架页面和跨域情况。
第一种解决办法是:使杀病毒软件屏蔽扫描Web.Config文件(程序运行时自己也不要去编辑它)
第二种是检查代码有无Session.Abandon()之类的。
第三种是在Window服务中将ASP.NET State Service 启动。
热心网友一:原因:
打开一个新的窗口要分两种情况:1.两个ie是不同进程:这时新ie并没有已打开窗口的资源(也就是sessionid)当然是不同的session
2.新开窗口与上个窗口是同一个进程,即不同线程,这样新窗口可以共享已有资源(sessionid)这样的两个窗口是同一session
你的情况是因为两个ie是不同进程了,和新开ie是一个道理,服务器一定会给你一个新的session
二、要解决你的问题只能保存SESSIONID,有三种方法:
1、COOKIE保存ID 2、URL保存ID 3、隐藏域保存ID
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)