IIS绑定配置时出现400 Bad Request(无效标头)错误求助
排查与解决步骤
1. 检查端口占用情况
停止IIS站点后仍能收到错误,说明80(HTTP)或443(HTTPS)端口大概率被其他进程占用,请求根本没到IIS。
- 打开管理员权限的命令提示符,运行以下命令:
netstat -ano | findstr ":80"netstat -ano | findstr ":443" - 查看输出里的PID,打开任务管理器的「详细信息」标签,找到对应PID的进程,确认是第三方服务(如Nginx、Apache)还是系统自带服务(如HTTP.sys)。
2. 释放被占用的端口
- 如果是第三方服务,直接停止该服务,再重启IIS站点测试访问。
- 如果是系统HTTP.sys服务占用,执行命令:
net stop http
按提示停止依赖服务后,重启IIS:net start w3svc
3. 验证IIS绑定配置
确认站点绑定没有遗漏或错误:
- 打开IIS管理器,找到目标站点右键「编辑绑定」:
- 裸域和www域名的绑定,IP选择服务器公网IP(或「全部未分配」,多IP场景建议指定公网IP);
- 端口设为80(HTTP)或443(HTTPS需配套证书);
- 主机名准确填写(如
example.com和www.example.com),不要留多余空格。
4. 排查网络层面限制
- 确认服务器本地防火墙允许80/443端口的入站请求;
- 用
ping 你的域名验证本地解析的IP是否和服务器公网IP一致; - 云服务器用户要检查云平台安全组,确认开放了80/443端口。
5. 调整HTTP.sys配置(针对无效标头错误)
400错误可能是HTTP.sys限制了请求头规则:
- 打开注册表编辑器,导航到
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters; - 检查
AllowRestrictedChars、MaxFieldLength、MaxRequestBytes等键值,若设置过小或限制过严,可适当调整(操作前备份注册表),之后重启HTTP服务生效。
内容的提问来源于stack exchange,提问作者Verril
相关产品推荐
相关产品推荐

