Windows 2016 update之后,页面跳转,Session失效
在某些浏览器下,如猎豹浏览器、QQ浏览器、3245浏览器的兼容模式下
两个页面,在a.aspx页面里设置了Session,跳转到b.aspx页面中,Session失效,这是怎么回事?
a.aspx文件中,有个链接:<a href="b.aspx">B页面</a>
a.aspx.cs文件中,使用以下语句设置Session:
Session["aaa"] = "abc"
b.aspx.cs文件中,读取Session["aaa"] ,值为null。
--------------------------------------------------------
追踪Session.SessionID,发现在a.aspx和b.aspx中的值不同。
--------------------------------------------------------
发现问题过程:
1、代码应该是没有问题,因为这两个页面部署在服务器上,有一年多了,一直没出现问题。
2、服务器操作系统为Windows Server 2016,去年12月,update之后,有客户反应,从a.aspx页面跳转到b.aspx之后,session丢失。
3、经测试,使用IE、Edge、Chrome等浏览器访问都正常,只有猎豹浏览器兼容模式、QQ浏览器兼容模式下,Session丢失,极速模式访问正常。
4、在本机开发环境中测试,包括猎豹浏览器兼容模式、QQ浏览器兼容模式,访问完全正常。初步怀疑是服务器update之后,IIS受影响。
5、为了找出IIS究竟受哪个更新文件影响,使用虚拟机安装了一个纯净的Windows Server 2016。
6、安装完操作系统后,直接把网站部署在虚拟机里,测试发现,包括猎豹浏览器兼容模式、QQ浏览器兼容模式,访问完全正常。
7、update虚拟机中的Windows Server 2016,再测试发现,猎豹浏览器兼容模式、QQ浏览器兼容模式下,Session丢失。
8、虚拟机中update了三个更新:KB4537764、KB4520724、KB3199986。
9、卸载KB4537764,测试发现,包括猎豹浏览器兼容模式、QQ浏览器兼容模式,访问完全正常。
10、在服务器上卸载KB4537764,再测试,猎豹浏览器兼容模式、QQ浏览器兼容模式下,Session还是丢失。
11、在服务器上将所有去年12月以后安装的更新全部卸载(除了KB4520724无法卸载外),再测试,猎豹浏览器兼容模式、QQ浏览器兼容模式下,Session还是丢失。
请问,问题究竟出在哪里了?