【问题标题】:IIS ASP.NET Session is lostIIS ASP.NET 会话丢失
【发布时间】:2026-01-14 14:05:02
【问题描述】:

我知道这已经被问过好几次了,但是在网络配置中我们设置了

<sessionState timeout="2880"></sessionState>

app pool recycle 是 1740 分钟,application pool timeout 现在也是 1740 mins, ping 和快速故障保护被关闭,并且在 global.asax 中我们记录每个应用程序启动、会话开始/结束、应用程序错误。 我在日志中看到 2 个“应用程序启动”而不是 2 个“会话启动”,没有任何变化,几分钟后,我们得到一个带有 2 个“会话启动”-s 的新“应用程序启动”(其中 2 个),与与以前相同的 sessionid(两者之间没有“会话结束”)。结果是一个每隔几分钟就会退出的 Web 应用程序。

【问题讨论】:

  • 您在项目中使用全局文件吗?

标签: c# asp.net session iis


【解决方案1】:

对此不确定,但您允许多少个应用程序实例?

在 IIS>应用程序池>YourAppPool>高级设置下;

您会找到相关设置:

  • 空闲超时(设置为 0?)
  • 禁用重叠回收(这可能是您的罪魁祸首;新实例在旧实例被处理之前启动?)

我能想到的另一件事是绑定上的“服务限制”,或者可能允许多个会话或实例?

【讨论】: