【发布时间】:2011-01-18 00:01:00
【问题描述】:
我有一个 ASP.NET 2.0 Web 应用程序与多个 ASP.NET 2.0 Web 服务通信。两者都使用 ASP.NET Sessions 来持久化会话数据。
为了警告用户应用程序的会话超时,我使用 Travis Collins's Timeout Control 的修改版本来显示标题为“您的会话即将到期”的 ModalPopupExtender 和按钮“保持登录”和“注销”。单击“保持登录”时,它会回调一个空方法,该方法会重置会话计时器(我相信是因为每个 HttpRequest 都会调用ResetItemTimeout)。
为了防止服务中的会话在应用程序中的会话之前超时,我将它们的超时设置为更长,并计划在应用程序中重置会话计时器时对其调用一个空方法。但是,正在重置的计时器没有Session-State Event。
我是否必须覆盖ResetItemTimeout?我该怎么做呢? 还是有其他方法可以实现我的目标(例如,在应用服务处于活动状态时保持服务会话处于活动状态)?我正在考虑扩展我的超时控制以通过应用发送心跳(例如Tim Mackey's idea)。
【问题讨论】:
-
是 .Net Web 应用程序还是浏览器(来自 JavaScript)调用了 Web 服务?
-
.net Web 应用程序
标签: asp.net web-services web-applications session timeout