【问题标题】:413 Error: Payload Too Large - IIS - Windows Server 2016413 错误:有效负载过大 - IIS - Windows Server 2016
【发布时间】: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


    【解决方案1】:

    我意识到我的机器 3.1.3 上的 .net 核心托管 bunble 版本与服务器机器 3.1.2 上的不同。

    在服务器上用最新的可用版本更新后,大文件的上传开始工作,没有产生 413 错误。

    【讨论】:

      猜你喜欢
      • 2018-04-23
      • 2019-07-20
      • 2020-12-22
      • 2018-07-05
      • 2018-01-16
      • 2021-08-21
      • 2021-04-07
      • 2020-07-11
      • 1970-01-01
      相关资源
      最近更新 更多