IIS会话状态服务器在30-60分钟后停止工作

时间:2011-02-25 16:06:06

标签: asp.net iis

因此,我们有三台2008 R2服务器,其中两台配置为Web服务器(IIS 7.5),第三台配置为会话状态服务器。我在应用程序web.config中设置了SessionState和MachineKey设置。重新启动两个Web服务器后,我可以登录到一个服务器,然后将IP地址更改为另一个服务器,我仍然登录。成功。

我通常可以使用我想要的任何用户帐户登录/注销,来回更改IP地址,直到30-60分钟之间的一些随机时间我登录到一台服务器,更改IP地址,新服务器要求提供凭据。

这是web.configs中的sessionState设置:

<sessionState mode="StateServer" stateConnectionString="tcpip=xxx.xxx.xxx.xxx:42424" cookieless="false" timeout="30"/>

应用程序位于默认网站下,并使用默认应用程序池。我正在使用表单身份验证,超时为20分钟。当发生这种情况时,我没有在三台服务器中的任何一台上收到任何错误事件,并且重新启动两台Web服务器会将问题解决一段时间。这两个Web服务器本身不是群集服务器,而是通过网络设备循环服务。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:1)

检查slidingExpiration="true"元素中是否有authentication->forms

答案 1 :(得分:0)

会话超时和表单身份验证超时不同,也不保持同步。 Forms Auth要求提供凭据,因为它已经超时。检查SlidingExpiration。状态服务器并不关心,如果您引用已过期的内容,它将会爆炸。另外,请仔细阅读SlidingExpiration的工作原理,这很棘手:

  

滑动过期会重置   有效期限到期时间   如果请求是身份验证cookie   制作和 超过一半的超时   间隔已经过去了。

Handling session and authentication timeouts in ASP.Net