个人技术分享

HTTP 错误 413.1 - Request Entity Too Large

在这里插入图片描述
这个报错的原因是因为IIS配置问题,IIS最大默认配置只有30M,超过30M就会报错

解决办法

  • 在程序中配置能接收最大字节大小
//配置请求头中能最大接收多少数据
//builder.WebHost.UseKestrel(options =>
//{
//    //209715200:200M;524288000:500M  
//    options.Limits.MaxRequestBodySize =
//        builder.Configuration["RequestBodySize"] == null ?
//        long.Parse(builder.Configuration["RequestBodySize"]) : 209715200;
//});

builder.Services.Configure<IISServerOptions>(options =>
{
    options.MaxRequestBodySize = builder.Configuration["RequestBodySize"] == null ?
        long.Parse(builder.Configuration["RequestBodySize"]) : 209715200; // 设置为你想要的最大字节大小
});

//builder.Services.Configure<FormOptions>(x =>
//{
//    x.MultipartBodyLengthLimit = builder.Configuration["RequestBodySize"] == null ?
//        long.Parse(builder.Configuration["RequestBodySize"]) : 209715200; // 设置为你想要的最大字节大小
//    x.MultipartHeadersCountLimit = 10;
//});
  • 在接口上方加上属性:[DisableRequestSizeLimit]
    在这里插入图片描述

  • IIS配置请求能接收最大字节

1.打开IIS管理器,找到站点对应的配置编辑器
在这里插入图片描述
2.找到system.webServer/security/requestFiltering节点,设置请求能接收最大字节数据;这里30000000值30M,可以在加一个0变成300M了
在这里插入图片描述

  • 看看不文件中的web.config文件是否有变化,箭头指的配置,如果不设置IIS是没有的,当然也可以直接copy配置过来
<system.webServer>
    <security>
        <requestFiltering>
            <requestLimits maxAllowedContentLength="3000000000" />
        </requestFiltering>
    </security>
</system.webServer>

在这里插入图片描述