如何解决413 错误:负载过大 - IIS - Windows Server 2016
当我尝试使用部署在 Windows Server 2016 上的 Asp.Net 核心 mvc 控制器上传大文件 (>30mb) 时,我收到了 http 响应代码 413。
Web 服务正在 IIS 上运行(“进行中”)。
控制器看起来像:
[Route("api/[controller]")]
[ApiController]
public class FileController : ControllerBase
{
[HttpPost]
[disableRequestSizeLimit]
[disableFormValueModelBinding]
public async Task<ActionResult<Guid>> Upload(IFormFile file)
{
[...]
}
}
我在启动类中使用这个设置:
public void ConfigureServices(IServiceCollection services)
{
[...]
services.Configure<FormOptions>(x =>
{
x.MultipartBodyLengthLimit = long.MaxValue;
});
}
而且我在我的应用 web.Config 中有这些设置以防止请求大小限制:
<system.webServer>
<security>
<requestfiltering>
<requestLimits maxAllowedContentLength="1073741824" />
</requestfiltering>
</security>
<serverRuntime maxRequestEntityAllowed="4294967295" uploadReadAheadSize="2147483647" />
</system.webServer>
当我在我的机器(Windows 10 + IIS)上本地运行它时,它运行良好
但是当我在 windows server 2016 机器上发布解决方案时,当我尝试上传大于 30mb 的文件时,我收到了 413 错误。
注意:服务器上的 applicationHost.Config 允许覆盖这些部分:
system.webServer/security/requestfiltering/requestLimits
system.webServer/serverRuntime
解决方法
我意识到我的机器 3.1.3 和服务器机器 3.1.2 上的 .net 核心托管包版本不同。
在服务器上用最新的可用版本更新后,大文件的上传开始工作,没有产生 413 错误。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。