IIS日志Timer_MinBytesPerSecond,Timer_ConnectionIdle的解决方法
(编辑:jimmy 日期: 2024/11/1 浏览:2)
Description: The Error means The connection with the server has been terminated.
问题描述:这个错误是由于服务器连接被中断导致的。
If you check out the C:"Windows"system32"LogFiles"HTTPERR"httperr*.log files on the distribution server, you'll likely see either Timer_MinBytesPerSecond errors or Timer_ConnectionIdle errors. These are caused by IIS' default settings, contained within its metabase, which define the minimum traffic flow rate for a connection to be kept alive and the maximum idle time allowed before a connection is dropped. For some reason, SUS servers seem to take their good old time while downloading updates, and these parameters are exceeded and the distribution server drops 'em.
这个问题是由于在某些应用下,IIS的默认设置不当的
1) From IIS Manager, right click on the Internet Information Server (IIS) Manager root level folder and go to Properties. Check the box to enable direct metabase editing. Click OK.
1)打开Internet 信息服务(IIS)管理器,右键点“我的计算机”——属性,选上“允许直接编辑配置数据库(N)”,确定。
2) Open the C:"Windows"system32"inetsrv"MetaBase.xml file in Notepad. Do a search for "MinFileBytesPerSec". Change the setting for MinFileBytesPerSec from 240 to 0. Do another search, this time for "ConnectionTimeout" to be 600. Save changes and exit.
2)编辑C:"Windows"system32"inetsrv"MetaBase.xml文件,把MinFileBytesPerSec 参数值从240改为0,把ConnectionTimeout参数设成600。
3) Restart the IIS Admin service to effect the changes.
3)重新起动IIS服务
替代方法
如果您安装最新 for Windows Server 2003, ServicePack 后问题仍然存在网络连接可能太慢。 使用网络跟踪来确定客户是否接收响应和重传数据包中延迟。 要变通解决此问题, 减少或禁用 IIS 6.0 以阻止从早关闭慢速客户连接中 MinFileBytesPerSec 属性。
其它网友对该解决办法的评价和心得:
觉得这些解决方法都有问题,假如车辆防盗警报经常响,正确的解决方法是看看有谁常来打你车子的主意,或者把车子放在更安全的地方,而绝对不是关掉警报。
因为HTTP服务需要占用TCP连接,而TCP连接时是需要占用系统资源的,而且IIS为每个连接也需要分配相应的资源。目前的主机能够处理上万的连接就可以说是软硬件设计都很不错了(可以参见C10K )。假如恶意人员通过一台或者多台机器发起大量的连接,而不请求内容(这样不需要消耗多少攻击机器的带宽),就可以大量消耗服务器资源而达到拒绝服务的目的。
所以 IIS 需要关闭长时间非活动的连接,这个就是Timer_ConnectionIdle 的错误由来。
原来以为攻击者可以给服务器故意缓慢的发送和接收内容而消耗服务器的资源,这样可以避免服务器对于Timer_ConnectionIdle 的保护,相应的IIS的防范就是 MinFileBytesPerSec 设置,MinFileBytesPerSec 属性通过以最小的数据量保持连接,来禁止恶意的或软件工作不正常的客户端消耗资源。如果吞吐量低于 MinFileBytesPerSec 设置的值,则终止连接。LOG里面就会显示Timer_MinBytesPerSecond错误(一些Timer_MinBytesPerSecond错误是因为 windows 2003 的http.sys错误引起的,解决方式是打上最新 ServicePack