我有一个遗留的ASP.NET应用程序。它从NET 2转换为net 4。 它使用状态服务器会话。
在某些时候,该应用会打开一个新页面(在新的浏览器标签中:链接目标=" _blank")
但是在返回调用页面(选项卡)后,我发现会话已重置,因此不再使用当前用户,应用程序重定向到登录页面。实际上,SessionID保持不变,但IsSessionNew设置为true,并且会话中没有设置变量。
该应用不使用Session.Abort或Session.Clear。
即使我将会话更改为InProc,并将链接的目标更改为_top,或_self,或者完全删除,也会发生同样的事情 - 会话重置。
这是web.config中的会话设置(或者我使用StateServer,但结果相同)
<sessionState timeout="432000" cookieless="UseCookies" mode="InProc"/>
知道是什么原因引起的吗?
谢谢。
答案 0 :(得分:0)
我终于解决了这个问题。 但是,我没有找到实际原因,但我找到了导致问题的模块。 这是一个aspx页面,它做了1001件事(它的基本功能加上另外80个基于ajax调用的其他东西(!!!)。我没有制作那个页面! 但导致问题的部分是为图像文件提供服务的功能。 所以我将该部分重写为ASHX处理程序,然后代码工作正常 - 会话保持打开状态。