每隔几个小时,Web Farm Framework 就会因 502 错误而导致我的农场关闭,并且农场中的 2 个 WFE 被标记为不健康。
我没有在“健康监测”中设置验证 URL,如果我手动“使服务器可用”,则在接下来的几个小时内一切都会正常,然后情况还是一样。
WFF 正在对 ASP.NET 应用程序进行负载平衡。我如何才能找出它们被标记为不健康的原因,或者只是禁用健康检测,以便 WFE 仅在部署错误时脱机?
编辑:这是截至昨天 IIS.net 上的最新 Web Farm Framework。
答案1
我想我找到了答案。如果您回收 ARR 应用程序池,则在尝试通过 WFF 控制器(即 http 负载平衡器)访问辅助服务器时会收到 502.4 错误。我将空闲超时设置为 0 分钟以禁用应用程序池回收。
从http://forums.iis.net/t/1158399.aspx
“从功能上讲,这个值对 ARR 的工作方式没有影响。空闲超时旨在关闭工作进程以释放更多内存。(默认值为 20 分钟。例如,如果您在多个应用程序池中有多个站点/应用程序,并且其中一个没有任何活动,则 IIS 将关闭工作进程 - 以便其他进程/等可以使用计算机上的资源。)
由于 ARR 将所有请求代理到其背后的内容/应用程序服务器,我们建议工作进程始终运行。(也就是说,如果流量恒定,那么工作进程将始终运行,与该值无关。即它不会闲置 20 分钟。)”
答案2
还要记得禁用应用程序的默认回收。
默认情况下,ARR DefaultAppPool 的超时时间为 20,回收时间为 ~ 固定间隔时间为 1740。
设置超时 = 0 并取消选中回收 ~ 固定间隔。
答案3
另外,在经历了多次令人沮丧的 502 中断之后,我还发现了一件事:
http://forums.iis.net/t/1183539.aspx/1
“我崩溃了,并向微软支付了技术支持费用,以解决这个问题。对于出现问题的服务器场,serverAutoStart 被设置为 false。这是在 C:\Windows\System32\inetsrv\config\applicationHost.config 文件中。”
对于我们来说,这个设置也是 false,因为将其设置为 true 后,我们就不会再遇到 502 错误
在 64 位机器上更改 applicationhost.config 时要注意的另一个小问题:
https://stackoverflow.com/questions/5696801/iis-7-5-applicationhost-config-file-is-not-being-updated