如何使用负载均衡器消除ASP.NET应用程序重新加载延迟?

时间:2010-12-21 17:10:27

标签: asp.net load-balancing

ASP.NET应用程序的一个问题是它们会定期重新加载,导致在此期间访问该网站的用户长时间延迟并可能超时。

对于小型网站而言,这可能不是问题,但如果用户碰巧被路由到正在重新启动的Web场中的节点,则它可能代表高流量站点的重大停机时间。

预编译可以提供帮助,但对于有多页的网站,仍然存在不可避免的延迟。

可以以某种方式加载平衡器“知道”特定服务器上的ASP.NET应用程序域是否正在重新启动?然后,他们可以在此服务器周围路由流量,直到应用程序完成重新启动。

目前,我的负载均衡器在网站上ping了一个简单的.aspx页面。如果存在延迟或页面无法加载,则主机将退出轮换。是否可以在IIS级别而不是ASP.NET级别进行更有针对性的运行状况检查?

2 个答案:

答案 0 :(得分:2)

如果您使用的是IIS7,即使AppPool重置后,您也可以查看应用程序预热模块以启动您的应用程序。

http://learn.iis.net/page.aspx/688/using-the-iis-application-warm-up-module/

答案 1 :(得分:0)

IIS6和IIS7都支持以固定时间/间隔调度应用程序池重新启动。如果负载均衡器可以按计划取出节点,则可以同步两个计划。

您还可以以编程方式强制从负载均衡器强制进行回收,有两个选项,请查看http://blog.developers.ie/cgreen/archive/2006/10/20/2341.aspx

当然,当由于其他原因重新启动应用程序池时,这些将无法处理。