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

向Azure API发送长字符串时出现403错误

问题分析与解决方案

核心问题

Azure部署的API接口MergeBase64ToPDF,接收包含List<string>的请求体,本地调试、前端网页调用均正常,但通过Postman/JMeter直接调用服务器地址时,只要请求中单个字符串长度超过102362字符就返回403错误,且请求未进入方法内部。

可能原因及解决办法

1. Azure App Service 请求长度限制

Azure App Service默认对请求内容有大小限制,当请求体过大时会被平台层提前拦截,直接返回403。

解决步骤:

  • 登录Azure门户,找到目标App Service,进入配置 > 常规设置
  • 找到请求正文大小限制,调整为符合需求的数值(例如设置为100MB,对应字节数104857600)
  • 保存配置后重启App Service

2. ASP.NET Core 自身请求大小限制

即使Azure平台放开限制,ASP.NET Core项目本身也有默认的请求大小阈值,超过会被框架拦截。

解决步骤:

  • 在Program.cs中添加全局配置:
    builder.Services.Configure<Microsoft.AspNetCore.Http.Features.FormOptions>(options =>
    {
        options.MultipartBodyLengthLimit = 104857600; // 100MB,按需调整
        options.ValueLengthLimit = 104857600;
    });
    
  • 也可以直接在目标Action上添加特性限制:
    [HttpPost]
    [Route("MergeBase64ToPDF")]
    [RequestSizeLimit(104857600)]
    public IResult MergeBase64ToPDF([FromBody] MergeBase64ToPDFRequest MergeBase64Request)
    {
        // 方法逻辑
    }
    

3. Azure WAF(Web应用防火墙)拦截

如果App Service配置了WAF,大请求可能被WAF规则误判为恶意攻击(如SQL注入、XSS规则),从而触发403拦截。

解决步骤:

  • 进入Azure门户的对应应用程序网关,找到关联的WAF策略
  • 查看WAF日志,确认是否是特定规则触发了拦截
  • 可临时禁用可疑规则,或添加自定义规则允许该接口的大请求;也可先将WAF模式切换为检测模式验证问题来源

4. 客户端请求格式/头信息问题

Postman/JMeter的请求头或格式设置不当,也可能导致403错误。

解决步骤:

  • 确认请求的Content-Type头为application/json
  • 对比前端网页调用的请求头,确保Authorization等必要头信息完全一致
  • 通过浏览器F12复制网页请求为cURL,导入Postman后对比差异,定位配置问题

5. 模型或路由约束限制

检查请求模型或路由是否存在无意中的长度限制。

解决步骤:

  • 查看MergeBase64ToPDFRequest模型中List<string>属性是否添加了[MaxLength]等长度限制特性,如有则调整为合适值
  • 检查项目路由配置,确保未对该接口添加特殊的路由约束

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 11:11:00