应用程序在 Application_AcquireRequestState 事件处理程序中设置 session.timeout。
在会话到期之前,会弹出通知窗口。它通过 Application_AcquireRequestState 将会话超时重置为 3 分钟(通常为 30 分钟)。
该通知为用户提供了将会话再延长 30 分钟的选项。如果用户单击是,它将通过先前的事件处理程序将会话超时重置 30 分钟。
问题是,尽管用户单击是,并且会话超时设置正确,但会话似乎在设置时间之前超时。这仅在通知后发生。
怀疑是当它到达 Application_AcquireRequestState 时,已经为此请求计算了超时。新的超时值将用于下一个请求。因此,当用户单击“是”以延长会话时,当前请求的超时时间不是 30 分钟,而是只有 3 分钟,因为通知窗口设置了超时。只有当用户发送另一个请求时,yes 才会生效。
(通知窗口有自己的计时对象)
任何人都可以验证这一点吗?或者给我一个很好的资源来解释asp.net是如何管理这个的?
谢谢!