我有一个使用运行状况测试功能 (healthcheck) 的 IIS ARR/Web Farm。测试的设置是每 30 秒检查一次给定的 url。它确实每 30 秒检查一次,但在每次检查期间会发送数百个请求。
有没有人见过这个?你知道如何预防吗?
网络农场配置:
<webFarm name="wf_site.at.your.domain_webservices_crosscampusenrollment" enabled="true">
<server address="site1.at.your.domain" enabled="true" />
<server address="site2.at.your.domain" enabled="true" />
<applicationRequestRouting>
<protocol timeout="00:00:30" reverseRewriteHostInResponseHeaders="false">
<cache enabled="false" queryStringHandling="Accept" />
</protocol>
<affinity useCookie="true" cookieName="ARRAffinity_site.at.your.domain_webservices_crosscampusenrollment" />
<loadBalancing algorithm="WeightedRoundRobin" />
<healthCheck url="http://site.at.your.domain/webservices/CrossCampusEnrollment/healthcheck" />
</applicationRequestRouting>
</webFarm>
这是IIS 日志的要点。
服务器信息:
Windows Server 2012 R2 Standard - Build 9200
IIS 8.5 - 8.5.9600.16384
URL Rewrite Module 2 - 7.2.2
ARR 3.0 - 3.0.1750
WFF - 1.1.1292
根据Scott Forsyth 博客上的评论,当您在具有多个应用程序池的服务器上拥有一个网络农场时,可能会发生这种情况:
消除它的唯一方法是缩减应用程序池和/或工作进程的数量。