我有一个IIS7 Web应用程序,主要提供Web服务请求。作为我们解决方案的一部分,我们有两个Web服务器和一个负载均衡器,负载均衡器会定期从每个负载平衡框请求一个页面。负载均衡器加载的页面名为“Health.aspx”,不后面有代码,Health.aspx文件的全部内容为:
OK
但是,我们在整天请求此页面时偶尔会观察到来自负载均衡器的400个错误,导致负载均衡器将机器从其旋转中弹出一段时间。
虽然可能存在许多可能导致问题的事情,但我想从Web框本身开始,并确定一个几乎没有代码的空的* .aspx页面是否会导致周期性问题。
答案 0 :(得分:1)
您应该创建Health.html,然后使用它。这也将让你知道它是否为你提供400个问题或IIS。
答案 1 :(得分:1)
“400错误”涵盖了广泛的潜在问题,从简单的未找到404到错误请求401,以及禁止403。
其中一些可能是由于网络电缆,网络,糟糕的负载均衡器,服务器过载等原因造成的。
顺便说一句,不,没有代码的网页不会抛出它。另外,我可能会在health.aspx中做一些更多的事情来验证服务器是否真正正常运行。就像运行一个calulation或做一个简单的数据库请求。毕竟,IIS可能只是缓存文件。
答案 2 :(得分:0)
事实证明,问题只是处理请求的绝对数量和不合时宜的响应时间(或实际请求时间 - 我们的客户端连接非常慢)。对Health.aspx的请求陷入缓慢的客户端连接,默认的MaxConcurrentRequestsPerCPU
为12人为地限制了我们的实际请求数/秒。将此数字增加到100 - 基于我们的硬件针对特定应用程序的负载进行仔细测试 - 解决了这个问题。