IIS6.0配置正常,但是显示“网页无法访问”,Httperr.log中显示全是“Connections_refused”,问题总结

Web服务器无法访问问题及解决方法
当Web服务器突然无法访问时,通过分析HTTPERR.log文件发现“Connections_refused”错误,表明可用的非分页缓冲池内存不足20MB导致问题。微软提供了解决方案,建议在注册表中添加EnableAggressiveMemoryUsage项并设置为1,以增加内存使用效率,从而解决此问题。

最近部门的Web服务器突然无法访问!

加班解决!

问题症状:

1、“Internet Explorer 无法显示该网页"

2、网站各项配置正常,昨天还能好好访问的

问题究竟在哪里呢?

通过分析HTTPERR.log文件,发现显示全是“Connections_refused”。

这也许就是问题的关键。如下图所示:

微软官网正好有解决办法:http://support.microsoft.com/kb/934878/zh-cn



如果可用的非分页缓冲池内存不足 20MB,Http.sys 服务将停止接收新连接,就会出现上述问题。这也就解释了为什么重启IIS没用,只能通过重启Web服务器释放内存资源来解决。

解决方法摘自微软网站:

若要变通解决此问题,请添加到下面的注册表子项的 EnableAggressiveMemoryUsage 注册表项:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters
然后,将 EnableAggressiveMemoryUsage 注册表项设置为 1。

若要执行此操作,请执行以下步骤:
  1. 单击开始,单击运行,在打开框中,键入注册表编辑器,然后单击确定
  2. 请单击下面的注册表子项:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters
  3. 编辑菜单上,指向新建,然后单击DWORD 值
  4. 键入EnableAggressiveMemoryUsage,然后再按 ENTER。
  5. 编辑菜单上,单击修改
  6. 数值数据框中,键入1,然后单击确定
  7. 文件菜单上,单击退出以退出注册表编辑器。
  8. 重新启动 HTTP 服务。若要执行此操作,请执行以下步骤:
    1. 单击开始,单击运行,在打开框中,键入cmd ,然后单击确定
    2. 在命令提示符下,键入net stop http /y,,然后按 enter 键。
    3. 在命令提示符下,键入iisreset /restart,然后按 ENTER。




<think>我们正在讨论HTTP 500错误,这是一个服务器端错误,表示服务器在处理请求时遇到了意外情况。根据用户提供的引用和需求,我们需要总结HTTP 500错误的原因和解决方法。 引用[1]提到的是HTTP 503错误,与500错误不同,但我们可以忽略,因为用户明确要求500错误。 引用[2]和[3]提供了关于HTTP 500错误的解决方法。 常见原因: 1. 服务器配置错误(如IIS设置) 2. 程序代码错误(如ASP、PHP等脚本错误) 3. 权限问题(如IIS匿名用户权限) 4. 系统文件问题(如SAM文件删除导致的问题) 解决方法: 根据引用[2]和[3]: 方法一:关闭浏览器的友好错误提示,以显示具体的错误信息(适用于调试环境) 方法二:如果是由于删除系统SAM文件导致,需要恢复或重新配置。 方法三:修改IIS内部账户(IWAM_MACHINE)密码并同步。 方法四:在IIS配置匿名访问的用户为IWAM_MACHINE,并设置密码同步。 此外,我们还可以补充一些通用的解决步骤: 1. 检查服务器日志:服务器错误日志通常会提供详细的错误原因。 2. 检查应用程序代码:检查最近是否有代码更新,回滚测试。 3. 检查文件权限:确保Web应用程序的目录有正确的权限。 4. 重启服务器或应用程序池:有时临时性问题可以通过重启解决。 由于用户是本地ASP网页出现500错误,我们将重点放在IIS配置和ASP环境上。 回答结构: 1. 解释HTTP 500错误 2. 列举可能的原因 3. 提供详细解决方法(特别是针对IIS和ASP环境) 4. 补充通用方法 5. 生成相关问题 注意:回答中需要引用文献的地方,在末尾添加引用标识。 </think>### HTTP 500错误解析及解决方案 HTTP 500错误(Internal Server Error)表示服务器在处理请求时遇到意外错误,是常见的服务器端故障提示。以下为根本原因及系统化解决方法: --- #### **一、核心原因分析** 1. **脚本执行失败** - ASP/PHP等动态脚本存在语法错误或逻辑异常 - 数据库连接失败或SQL语句错误(如`SELECT * FROM non_existent_table`) 2. **权限配置问题** - IIS匿名用户(`IWAM_MACHINE`)无文件访问权限 - 系统SAM文件被误删导致账户验证失败[^2] 3. **组件/服务异常** - COM+组件账户未同步 - 应用程序池崩溃(常见于资源耗尽情况) 4. **环境配置错误** - `.NET Framework`版本不兼容 - Web.config文件配置错误(如节点缺失或参数无效) --- #### **二、系统化解决方案** **▶ 诊断步骤(必做)** 1. 关闭浏览器友好错误提示: ```markdown 浏览器设置 → Internet选项 → 高级 → 取消勾选"显示HTTP友好错误提示" → 刷新页面 ``` 此时可显示具体错误信息(如`错误类型:ADODB.Connection`)[^2] **▶ 权限修复方案** ```mermaid graph TD A[开始] --> B[打开IIS管理器] B --> C[站点属性 → 目录安全性] C --> D[编辑匿名访问设置] D --> E[选择用户 IWAM_MACHINE] E --> F[输入密码并勾选“允许IIS控制密码”] F --> G[忽略“非本地用户”警告] G --> H[重启IIS服务] ``` > **注意**:密码需与系统账户一致,若修改需同步更新COM+组件[^3] **▶ 高级修复方法** 1. **COM+组件同步**(CMD执行): ```bash cscript C:\inetpub\adminscripts\synciwam.vbs -v ``` 检查组件服务控制台 → COM+应用程序 → IIS Out-Of-Process Pooled Applications的标识 2. **系统账户修复**: - 重置`IWAM_MACHINE`密码至初始状态 - 将用户加入`Guest`组并添加`Authenticated Users`权限[^2] 3. **应用程序池重置**: ```markdown IIS管理器 → 应用程序池 → 右键对应池 → 回收 ``` --- #### **三、预防措施** 1. **脚本调试**:本地测试ASP脚本后再部署 2. **权限最小化**:限制`IWAM_MACHINE`仅访问必要目录 3. **日志监控**:定期检查`C:\Windows\System32\LogFiles\HTTPERR`日志 4. **环境隔离**:使用虚拟化容器(如Docker)避免环境冲突 > **关键提示**:若上述方法无效,需检查系统事件查看器(`eventvwr.msc`)中应用程序日志,定位具体模块错误[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值