问题使用状态服务器负载均衡.Net Web应用程序

我们有一个Netscaler负载平衡器后面的多个Web服务器。 每个(Win2008)服务器都托pipe一个ASP.Net应用程序(使用iis 6.1),configuration为使用运行.Net StateServer服务的中央服务器进行会话状态pipe理。

当我们将负载均衡器configuration为使用“循环”或“最不忙”路由时,Web应用程序定期崩溃,并显示错误,指示它预期处于会话状态。 然而,这并不是所有的时间 – 只有在某些步骤,然后在大约75%的尝试。

当我们将负载均衡器configuration为服务器持久性(因此用户“坚持”在一台服务器上)时,问题不会发生。 (但这不是我们想要的运行模式)

我们已经检查/完成的事情:

  • 重新开始所有的事情
  • 机器密钥在所有服务器上都是一样的
  • Web服务器和状态服务器之间没有连接问题
  • IIS是站点名称,path和ID在所有Web服务器上都是相同的
  • 应用程序日志中没有logging错误

有没有人有任何其他的事情来检查/可能的原因的build议?

NB。 我们在另一个环境 – 完全相同的负载均衡器types,相同的Web应用程序,相同的configuration,相同的服务器设置…,它工作正常。 唯一的区别是一个不同版本的VMWare工具,但不能看到这是原因?

几个月后,我们发现原因。 一些(但不是全部)服务器已经升级到.Net Framework的新版本。

微软不支持使用同一个StateServer 的不同版本的框架的不同服务器,所以当客户在4.5.1的服务器和早期版本的服务器之间跳转时,他们基本上失去了会话,应用程序崩溃了。

如果遇到这个问题,我build议你检查在每个服务器上安装了哪个框架 – 它们必须全部相同才能使用同一个StateServer。