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

Azure API App触发请求大小限制错误,需补充哪些配置?

问题诱因

你配置的maxAllowedContentLength参数仅用于限制请求正文(Body)的最大允许大小,本次报错是因为你将超长的HTML内容作为查询字符串参数传递,IIS默认对查询字符串长度有独立的默认限制(通常为2048字节),远小于你传入的HTML内容长度,因此触发了查询字符串长度校验失败。

所需额外配置

你需要同时完成IIS层面和ASP.NET Core层面的查询字符串长度限制配置:

  • 第一步:修改Web.config配置
    在requestLimits节点中新增maxQueryString、maxUrl参数配置,按需设置足够大的长度值(单位为字节,示例配置为允许最大2MB的查询字符串):
    <requestLimits maxAllowedContentLength="52428800" 
                   maxQueryString="2097152"
                   maxUrl="65536" />
    
  • 第二步:修改ASP.NET Core服务配置
    在项目的Startup.cs或者Program.cs服务注册逻辑中,新增HTTP请求选项配置,放宽查询字符串大小限制:
    // .NET 5 Startup.cs 示例
    public void ConfigureServices(IServiceCollection services)
    {
        services.Configure<HttpOptions>(opt => 
        {
            opt.MaxQueryStringSize = 2097152; // 对应设置为2MB,与Web.config配置保持一致
        });
        // 原有其他服务注册逻辑
    }
    
    如果使用Kestrel托管,还需要同步配置Kestrel的查询字符串限制:
    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.ConfigureKestrel(serverOptions =>
                {
                    serverOptions.Limits.MaxQueryStringSize = 2097152;
                })
                .UseStartup<Startup>();
            });
    

补充说明:查询字符串本身不适合传递超长文本内容,浏览器、代理服务器也可能对查询字符串长度有额外限制,建议调整接口逻辑,改用POST请求将HTML内容放在请求正文中传递,兼容性更好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 03:24:03