IIS .Net Core 413错误和Request body too large解决办法

错误描述

图片比较大时,在前端上传就报413错误。根本到不了后端。

在网上看到这个文章比较有用。

https://blog.youkuaiyun.com/wstever/article/details/128870742

1、修改网站Web.config配置文件

加入下面这段配置

<?xmlversion="1.0" encoding="utf-8"?>

<configuration>

<location path="." inheritInChildApplications="false">

<system.webServer>

<handlers>

<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />

</handlers>

<aspNetCore processPath="dotnet" arguments=".\WebApi.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />

<security>

<requestFiltering>

<requestLimits maxAllowedContentLength="209715200" />

</requestFiltering>

</security>

</system.webServer>

</location>

</configuration>

经过上面配置,本地上传成功,但是其他机器上报 Requestbody too large

Request body too large 错误解决方法

1、修改Startup.cs

public void ConfigureServices(IServiceCollection services)

{

services.AddFxServices();

services.AddAutoMapper();

//解决文件上传Request body too large

services.Configure<FormOptions>(x=>

{

x.MultipartBodyLengthLimit = 209_715_200;//最大200M

});

}

2、修改接口方法

加上 [DisableRequestSizeLimit]

这个时候将项目重新发布部署一下,低于200M的文件就可以正常上传了。

注意:上面的解决方法只适用于将.Net Core项目部署在IIS下。

如果是部署Linux系统下(参考其他博主的解决方法,具体没有进行测试论证,仅供参考)

需要在 Program.cs 添加如下代码

public static IWebHost BuildWebhost(string[] args) =>

WebHost.CreateDefaultBuilder(args)

.UseStartup<Startup>()

.UseKestrel(options=> {

options.Limits.MaxRequestBodySize = 209715200; // 200M

})

.Build();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值