IIS版本6.0 无故停止工作。
重启IIS 没有效果,必须重启web服务器。出现客户端无法访问Web服务器上的站点,错误信息提示为"页面无法显示"的情况。登录服务器检查后发现IIS并未停止运行,各服务也正常处理,但就是无法访问站点上的页面(包括静态页面)
首先查看 web服务器的IIS 日志文档,位置默认在C:WINDOWSsystem32LogFiles 下
这个目录下都是IIS的日志,其中 HTTPERR 文件夹中是IIS的报错记录
这个目录下都是IIS的日志,其中 HTTPERR 文件夹中是IIS的报错记录
打开HTTPERR 文件夹中出错日期的文档,例如 httperr7.log,显示
2016-02-18 05:54:22 - - - - - - - - - 1_Connections_Refused -
2016-02-18 05:59:22 - - - - - - - - - 1_Connections_Refused -
2016-02-18 06:02:07 - - - - - - - - - 5_Connections_Refused -
2016-02-18 06:03:37 - - - - - - - - - 2_Connections_Refused -
2016-02-18 06:03:42 - - - - - - - - - 2_Connections_Refused -
2016-02-18 06:04:22 - - - - - - - - - 1_Connections_Refused -
2016-02-18 06:08:12 - - - - - - - - - 4_Connections_Refused -
2016-02-18 06:08:17 - - - - - - - - - 1_Connections_Refused -
2016-02-18 06:08:47 - - - - - - - - - 4_Connections_Refused -
2016-02-18 06:09:22 - - - - - - - - - 1_Connections_Refused -
2016-02-18 06:09:47 - - - - - - - - - 1_Connections_Refused -
解决方法:
微软的官方解决方案,http://support.microsoft.com/kb/934878/zh-cn解决方法如下:
1.进入注册表,进入具体项:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesHTTPParameters
2.新建dword值,输入名称“EnableAggressiveMemoryUsage”
3.修改值为1.
4.开始-运行,输入CMD。进入CMD窗口。
5.执行:net stop http /y
6.执行:iisreset /restart
IIS问题得到解决。
1.进入注册表,进入具体项:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesHTTPParameters
2.新建dword值,输入名称“EnableAggressiveMemoryUsage”
3.修改值为1.
4.开始-运行,输入CMD。进入CMD窗口。
5.执行:net stop http /y
6.执行:iisreset /restart
IIS问题得到解决。
备注:
经过我们解决问题发现时因为网站所在的应用程序池中请求队列限制,限制在1000,根据自己的网站流量,果断设置为 5000-10000就解决了,默认的1000确实有点少了
经过我们解决问题发现时因为网站所在的应用程序池中请求队列限制,限制在1000,根据自己的网站流量,果断设置为 5000-10000就解决了,默认的1000确实有点少了

分析:
这个问题是在默认情况下,如果可用的非分页缓冲池内存不足 20MB,Http.sys 服务将停止接收新连接,就会出现上述问题。这也就解释了为什么重启IIS没用,只能通过重启Web服务器释放内存资源来解决。
要分析这个问题,首先得了解下Windows系统中的核心内存概念:核心内存是Windows分配给系统内核或驱动所需的内存空间,分页内存是虚拟内存,也就是这一部分内存可以置换到硬盘中,但是,非(未)分页内存是不能置换到硬盘的,只能保存在物理内存中,常用于一些软件或是系统的驱动程序使用。如果未分页内存无限增大,到达一个阀值,就会造成系统问题。在32位的Windows上,这个阀值最高不能超过256MB,否则操作系统会变得非常不稳定。
打开自己系统的任务管理器,在"性能"项中,可以看到:
打开自己系统的任务管理器,在"性能"项中,可以看到:

如上图所示,这就是我本机当前时刻所使用的分页和未分页内存数,这个数字很正常。

Poolmon是类似于Dos 的命令行执行程序,基本上完成检测的操作我们只需要2个指令: P-排序标签列表通过分页,非分页,混合等3种模式;B-对标签排序最大字节使用情况。
如下图所示:显示的就是操作系统中所有占用非分页内存项,并按字节大小降序排列。我们找出排在前面,并且字节数不断增加的tag项,根据Tag来定位进程和驱动文件。比如我们想看下目前占用90M非分页内存的Thre项,在Dos中输入:
findstr /s /m /l "Thre" c:windowssystem32drivers*.sys
