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

Azure中启用仅HTTPS重定向后,ASP.NET MVC应用仍提示「The requested resource can only be accessed via SSL」的问题咨询

为什么已启用HTTPS重定向仍会捕获到「The requested resource can only be accessed via SSL.」错误?

可能的原因分析

这种情况本质是部分HTTP请求没有被Azure网关的重定向规则拦截,直接穿透到了你的ASP.NET MVC应用层,触发了应用本身的SSL强制检查逻辑,从而抛出这个错误。具体场景通常有这些:

  • 应用层提前配置了SSL强制规则:比如你在web.config里设置了<system.webServer><security><access sslFlags="Ssl" /></security></system.webServer>,或是在Global.asax/自定义ActionFilter里加了SSL校验逻辑。Azure App Service的HTTPS重定向是网关层面的,但如果应用自身的SSL检查优先级更高(或某些请求绕过了网关规则),就会直接触发应用内的错误。

  • 不遵循重定向的客户端/爬虫:有些老旧客户端、爬虫或者测试工具在收到301/302重定向响应后,不会自动转向HTTPS,而是持续发送HTTP请求到你的应用。这类请求会直接抵达应用层,触发SSL强制错误。

  • CORS预请求(OPTIONS方法):如果你的应用处理跨域请求,浏览器会先发送HTTP的OPTIONS预请求。默认情况下,Azure的HTTPS重定向规则可能不会拦截OPTIONS请求(或是你的重定向规则没覆盖OPTIONS方法),导致这个预请求直接到达应用,触发SSL检查错误。

  • 重定向规则配置遗漏:检查Azure App Service的重定向规则是否覆盖了所有HTTP方法。比如有些规则可能只针对GET请求,忽略了POST/PUT等其他方法,这类请求会绕过重定向,直接触发应用内的错误。


如何模拟这个事件

你可以用以下几种方式复现这个错误:

  1. 使用curl发送不跟随重定向的HTTP请求:
    在终端执行命令:

    curl -v http://myapp.mydomain.com
    

    这个命令不会自动跟随重定向,会直接发送HTTP请求到应用,你的Application_Error()方法应该能捕获到对应的错误。

  2. 使用Postman发送HTTP请求并关闭自动重定向:
    打开Postman,新建GET请求并输入http://myapp.mydomain.com,然后在请求设置里关闭「Follow Redirects」选项,发送请求后就能触发应用内的SSL错误。

  3. 模拟CORS预请求:
    用curl发送OPTIONS请求:

    curl -X OPTIONS http://myapp.mydomain.com -H "Origin: https://another-domain.com"
    

    如果你的重定向规则没覆盖OPTIONS方法,这个请求会直接到达应用,触发错误。

  4. 编写简单的控制台程序发送HTTP请求:
    写一段C#代码,直接发送HTTP请求并不处理重定向:

    using System.Net;
    
    var request = (HttpWebRequest)WebRequest.Create("http://myapp.mydomain.com");
    request.AllowAutoRedirect = false; // 禁用自动重定向
    try
    {
        using (var response = (HttpWebResponse)request.GetResponse())
        {
            Console.WriteLine($"Status code: {(int)response.StatusCode}");
        }
    }
    catch (WebException ex)
    {
        Console.WriteLine(ex.Message);
    }
    

    运行这段代码,你的Application_Error()方法就能捕获到目标错误。


内容的提问来源于stack exchange,提问作者markzzz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 17:37:53