本文主要是介绍WINDOWS2003上的IIS频繁出问题 无响应,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
服务器最近IIS经常出现无响应,访问不了,但是可以ping 的通,重启后有可以运行了。大概是一周要重启一次。
服务器的配置 WINDOWS2003 iis6 ASP.NET2.0
查看了IIS记录,没有问题。但是Httperr.log记录有很多的Connection_Dropped ,Timer_MinBytesPerSecond, Timer_ConnectionIdle
如下图
关于
Connection_Dropped 这个错误
微软的解释
这个是机器人翻译
如果满足下列条件,将出现"Connection_Dropped"事件消息:
· 一个 HTTP 客户端已发送 HTTP 请求到 IIS。
· IIS 已经收到了该请求,并已开始处理响应。
· 客户端和服务器之间连接被关闭之前发送完成的响应。
(关于第3点 有点问题)
我的猜测:
应该是客户端关闭了和服务器直接的连接,而服务器仍然在处理中。这个时候客户端已经断开了,停止响应了。而服务器发送之前的请求的响应,没客户端接受了。就形成了事件Connection_Dropped。
猜测的原因
我们系统要导出EXCEL,导出的文件有的时候很大,所以等待的时间有点长,这个时候客户有的时候 耐心不够,直接关掉了。而服务器仍然在处理中,处理完发现不能发送给客户端了。
我测试了一下,当我在等待服务器的响应时候 我关掉了等待响应的页面,服务器生成了1489803067 Connection_Dropped事件。
按照昨天那个顺序测试了一下 发生的错误截图
客户端这边的反应是 有一段时间 点其他页面(也是这个网站的) 服务器无响应。过一段段时间才可以响应的。
把导出EXCEL耗费CPU资源比较大的 程序 改写成导出TXT格式(超出一定量数量数据后)
看了下原版英文
The "Connection_Dropped" event message occurs if the following conditions are true:
· An HTTP client has sent an HTTP request to IIS.
· IIS has received the request and has begun to process the response.
· The connection between the client and the server is closed before a complete response is sent. (当服务器完成了完成客户端的请求的处理后 却发现它们之间的连接已经断开了。)
关于timer_connectionidle Timer_MinBytesPerSecond
Timer_ConnectionIdle | 过期并保持空闲的连接。 默认 ConnectionTimeout 持续时间为两分钟。 |
Timer_MinBytesPerSecond | 连接已过期因为客户端不接收响应以合理的速度。 响应发送速率是 240 字节/秒的默认比速度慢。 |
查了baidu,google 解决的办法是更改
1 超时时间变大 2 设置最小发送包为0,
编辑C:"Windows"system32"inetsrv"MetaBase.xml文件,把MinFileBytesPerSec 参数值从240改为0,把ConnectionTimeout参数设成600。把MinFileBytesPerSec 参数值从240改为0,把ConnectionTimeout参数设成600。
我在想不会是这个引起服务器的IIS停止响应的吧。先改了看下 看下效果。
这篇关于WINDOWS2003上的IIS频繁出问题 无响应的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!