.NET部署IIS上传文件出现 413 Request Entity Too Large 错误

xieshuoshuo 发布于 1 天前 26 次阅读 预计阅读时间: 2 分钟


IIS 上传文件出现 "413 Request Entity Too Large" 错误,表示客户端尝试上传的文件大小超过了服务器配置的限制。

要解决此问题,需要修改 IIS 配置以允许更大的文件上传。 以下是几种方法:

  1. 修改 web.config 文件:

这是最常见的方法,因为它只影响特定的网站或应用程序。 在网站或应用程序的 web.config 文件中,找到 <system.webServer>(没有可以手动添加) 部分,并添加或修改以下配置:

<system.webServer>
  <security>
    <requestFiltering>
      <requestLimits maxAllowedContentLength="104857600" /> <!-- 例如,设置为 100MB -->
    </requestFiltering>
  </security>
</system.webServer>

maxAllowedContentLength 属性以字节为单位指定允许的最大内容长度。 在上面的示例中,它被设置为 100MB (100 * 1024 * 1024 = 104857600 字节)。 根据需求调整此值。

  1. 使用 IIS 管理器:
  • 打开 IIS 管理器。
  • 选择你的网站或应用程序。
  • 双击 "请求筛选" 功能。
  • 在 "功能设置" 中,找到 "最大允许内容长度" 并修改为你想要的值。
  • 点击 "应用" 保存更改。
  1. 修改 applicationHost.config 文件 (不推荐):

这个文件控制所有网站的全局设置。 除非确定要影响所有网站,否则不建议修改此文件。 该文件通常位于 %windir%\system32\inetsrv\config 目录下。 修改方法与 web.config 类似,在 <system.webServer> 部分添加或修改 requestLimits

  1. 检查其他限制:

除了 IIS 配置,还要检查以下方面是否也限制了上传大小:

  • 反向代理: 如果使用了反向代理(如 Nginx 或 Apache),也需要检查它们的配置,确保它们允许更大的请求体大小。
  • 负载均衡器: 类似地,如果使用了负载均衡器,也需要检查它的配置。
  • 代码限制: 应用程序代码中也可能存在文件大小限制。 例如,ASP.NET Core 中的 MaxRequestBodySize 属性。

修改完成后,重启网站或应用程序,使更改生效。