【发布时间】:2021-07-08 13:37:46
【问题描述】:
当我尝试使用在 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
【问题讨论】:
标签: iis asp.net-core-mvc windows-server-2016 http-status-code-413