You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET MVC框架项目自动从HTTP重定向到HTTPS却未找到重定向配置,调试时出现连接错误求助

ASP.NET MVC框架项目自动从HTTP重定向到HTTPS却未找到重定向配置,调试时出现连接错误求助

这种莫名的自动重定向还报错的情况确实挺闹心的,我之前维护老项目时也碰到过类似问题,给你梳理几个常见的排查方向,你挨个试试:

  • 检查IIS Express的隐藏配置文件
    调试用的IIS Express有个隐藏的配置目录.vs(在项目根目录下,需要显示隐藏文件才能看到),里面的config\applicationhost.config文件可能悄悄做了强制HTTPS的设置。打开这个文件,搜索你的项目名称,重点看:

    • <bindings>节点里是否同时存在HTTP和HTTPS绑定,有没有被强制设置成仅HTTPS?
    • 有没有<rewrite>规则偷偷加了HTTP转HTTPS的配置?
    • 节点里的<sslFlags>是不是被设置成了Ssl或SslNegotiateCert这类强制SSL的参数?
  • 核对项目调试属性的细节
    除了你提到的Web标签页HTTP设置,别忘了看Debug标签页:

    • 检查“启动浏览器”的地址是不是不小心填成了HTTPS的链接?
    • 有没有勾选“启用SSL”选项?VS有时候会自动给项目开启SSL支持,哪怕你没在Web标签页设置,这个选项勾上的话,启动时就会强制用HTTPS,要是本地SSL证书有问题就会报连接错误。
  • 排查全局/Action过滤器
    ASP.NET MVC的过滤器很容易藏这种“隐形”重定向:

    • 打开App_Start\FilterConfig.cs,看看有没有注册filters.Add(new RequireHttpsAttribute());——这个全局过滤器会强制所有请求跳HTTPS。
    • 逐个检查控制器或Action方法,有没有单独加[RequireHttps]特性,说不定之前的开发者加在某个你没注意的地方。
  • 再仔细检查Web.config及转换文件
    你说已经搜过了,但可以再确认这几点:

    • 主Web.config的<system.webServer>节点下有没有<rewrite>规则,比如下面这种HTTP转HTTPS的配置:
      <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>
      </rewrite>
      
    • 看看Web.config的转换文件(比如Web.Release.config)有没有这类重定向规则,要是你调试时不小心选了Release配置,转换后的规则也会生效。
  • 排除浏览器缓存干扰
    有时候浏览器会记住之前的HTTPS重定向缓存,哪怕服务器端没配置也会自动跳转。你可以用Edge的隐私模式打开调试,或者清除浏览器的缓存、Cookie后再试试,说不定就不再自动跳了。

  • 检查本地工具的强制HTTPS设置
    比如杀毒软件、防火墙,或者像Fiddler这类代理工具,有些会强制把本地HTTP请求转成HTTPS,导致连接出错。可以暂时关闭这些工具,再启动调试看看情况。

备注:内容来源于stack exchange,提问作者eliassal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 10:28:02