ASP.Net会话在postback后偶尔丢失。

3
我们有一个WebForms应用程序安装在客户那里:
  • .NET Framework 4.51
  • InProc Sessions(使用Cookies)
  • 集成管道模式
  • IIS 8.5
  • SSL
问题 我们遇到了一个问题,即会话突然被Web服务器重新创建。这在向aspx页面进行postback时不时发生。(Session.IsNewSession属性被设置并且所有先前的会话数据都丢失了。ASP.Net_SessionId cookie不变,sessionId也不变)。该问题不特定于浏览器。(已使用IE、Chrome、Firefox测试)
编辑:我现在还可以确认,当发生这种情况时,不仅执行用户的会话会被重新创建,而且所有其他活动用户的会话也会被重新创建。
我既无法在使用VisualStudio调试时重现此行为,也无法在本地IIS服务器上重现此行为。 我尝试/测试过的内容
  • 检查了会话超时的IIS设置(超时时间为20分钟,但在postback后约5秒钟会丢失会话)
  • 应用程序池回收设置为默认值(1740分钟)
  • 所有请求都使用https进行(因此不会在http / https之间切换)
  • 激活回收日志记录 -> 就我所看到的而言,在这种情况下没有应用程序池回收(没有日志,没有进程ID更改,...)

什么可能导致这个问题?

编辑2:我现在确定,问题是IIS 8.5。在IIS 7中运行的相同代码没有这个问题。

解决方法

这个答案通过将应用程序池设置为“Classic”而不是“Integrated”来解决了类似的问题。我现在已经修改了应用程序,使其也可以在“Classic”模式下运行,并且问题已经消失了。我仍在寻找原因和“真正”的解决方案,以便我可以在“集成”模式下运行应用程序。因此,任何建议仍然受到欢迎。

1个回答

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接