ASP.Net会话快速定时

我们有一个运行在IIS7上的Windows Server 2008的ASP.Net 3.5网站。 该站点的会话超时时间configuration为20分钟 – 但是,当前持续时间在40到50秒之间。 在研究了这个问题之后,我们调查了几个可能涉及超时时间的configuration值,但是没有一个被设置为小于20分钟。 我们看的区域如下:

  • web.config system.web / sessionState元素(20分钟)。
  • web.config system.web / authentication / forms元素(不存在,默认为30分钟)。
  • 网站/ {网站} / ASP /会话属性/超时(20分钟)。
  • 应用程序池/ {应用程序池} /高级设置/进程模型/空闲超时(20分钟)。

我们也注意到,CPU处于0%左右,RAM的使用率平均在1.07 GB(可用的8 GB) – 因此IIS没有基于性能的理由来回收应用程序池。我们可以告诉。

是否有任何我们忽略的设置可能导致会话超时过期如此之快?

编辑

另外几点:

  • 这不是发生在开发中,只在服务器上。
  • 会话不滑动(即,如果我们刷新页面几次,在会话创build后大约40到50秒仍然超时。

当工作进程崩溃并被回收时,所有会话都会丢失。 你有没有检查你的事件日志有什么奇怪的?

它可以在代码中被覆盖。 Session.Timeout = nn分钟。

为了安全起见,ASP.NET应用程序也可能有一些代码过期和放弃会话。 这是用Session.Abandon()完​​成的。 您可能想要validation会话没有被删除在应用程序中。 希望应用程序在身份validation代码中有一些types的日志logging,这将有助于揭示会话活动。

会话到期也在滑动。 因此,如果您每隔几秒钟频繁地连接到该网站,则确实不应过期。 如果是这样,肯定有东西是顶起来的。