Asp.NET MVC项目HTTP被重定向至HTTPS导致访问失败求助
解决方案排查步骤
检查IIS站点绑定与SSL设置
- 打开服务器IIS管理器,找到目标站点:
- 确认站点仅配置HTTP绑定(端口8080,IP设为「全部未分配」或指定服务器IP),无多余HTTPS绑定。
- 进入站点「SSL设置」,确保未勾选「要求SSL」,该选项会强制将HTTP请求重定向至HTTPS。
- 检查URL重写规则:
- 进入站点「URL重写」模块,删除所有强制HTTP转HTTPS的规则。也可直接查看
web.config的<rewrite>节点,确认无如下规则:<rules> <rule name="HTTP to HTTPS redirect" stopProcessing="true"> <match url="(.*)" /> <conditions> <add input="{HTTPS}" pattern="off" ignoreCase="true" /> </conditions> <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" /> </rule> </rules>
- 进入站点「URL重写」模块,删除所有强制HTTP转HTTPS的规则。也可直接查看
- 打开服务器IIS管理器,找到目标站点:
排查Asp.NET MVC全局强制HTTPS逻辑
- 打开项目
FilterConfig.cs,确认未全局注册RequireHttpsAttribute:// 若存在如下代码,直接注释或删除 filters.Add(new RequireHttpsAttribute()); - 检查所有控制器、Action是否单独标记了
[RequireHttps]特性,如有则移除。
- 打开项目
排查服务器反向代理/防火墙配置
如果服务器前端有Nginx、Apache或云负载均衡:- 确认代理服务未配置强制HTTPS跳转规则(比如Nginx的
return 301 https://$host$request_uri;)。 - 检查防火墙是否允许8080端口的HTTP流量,且未将HTTP请求强制转发至HTTPS端口。
- 确认代理服务未配置强制HTTPS跳转规则(比如Nginx的
客户端侧缓存清理
让客户端执行以下操作:- 使用浏览器隐私模式访问目标地址,排除常规缓存干扰。
- 清除浏览器历史记录、缓存及Cookie,避免旧重定向缓存残留。
验证部署包配置
确认服务器上的部署包:web.config无<httpRedirect>等强制HTTPS跳转的配置节点。- 若使用
appsettings.json,检查是否存在"EnforceHttps": true类配置,如有则改为false。
内容的提问来源于stack exchange,提问作者Seyfemichael Teklemariam
相关产品推荐
相关产品推荐

