服务器:winserver2012R2跨域
iis 发布网站后,正常浏览网页,时常跳到登陆页面,第一反应session过时,由于登陆信息都存在session,但session 都是默认配置过时时间为20分钟,应该不会过时。服务器
而后百度搜索问题,查到一个比较可信的答案:session
Session丢失的解决办法小结
最近在作ASP.NET项目时,测试网站总是取不出Session中的值,在网上搜索了一下,找到一些解决方法,记录在这里。最后使用存储在StateServer中的办法解决了问题。
SessionState 的Timeout),其主要缘由有三种
一:有些杀病毒软件会去扫描您的Web.Config文件,那时Session确定掉,这是微软的说法。
二:程序内部里有让Session掉失的代码,及服务器内存不足产生的。
三:程序有框架页面和跨域状况。
第一种解决办法是:使杀病毒软件屏蔽扫描Web.Config文件(程序运行时本身也不要去编辑它)
第二种是检查代码有无Session.Abandon()之类的。
第三种是在Window服务中将ASP.NET State Service 启动。框架
试了下第三种方法,依然不行。。。GG测试
没办法只能本身慢慢查了,通过后来仔细寻找,发现缘由:网站
iis程序池中把最大工做进程数改为5个了。spa
把上图标红的数改为1便可;server
分析缘由:应该是登陆了是在一个进程内,以后点击网页后进程改变,每一个进程之间又是独立的因此致使找不到用户信息,通过网站拦截器跳转到登陆页面。blog