You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Razor Pages上传大视频报Request Entity Too Large错误

问题原因

IIS托管ASP.NET Core应用时,请求会先经过IIS的请求过滤模块校验,校验通过后才会转发给Kestrel和ASP.NET Core管线处理。你之前调整的FormOptions、KestrelServerOptions、[RequestFormLimits]都是应用层配置,请求还没走到应用层就被IIS默认的请求大小限制拦截了,才会返回413 Request Entity Too Large错误。
IIS默认允许的最大请求体大小约为28.6MB,超过这个值就会直接返回报错,和你应用里的配置无关。

解决方案

1. 配置web.config放开IIS层限制

在项目根目录的web.config中添加IIS请求过滤配置,注意两个配置项的单位不要搞混:

<?xml version="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=".\你的项目程序集名.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
      <!-- 新增:配置IIS请求过滤阈值 -->
      <security>
        <requestFiltering>
          <!-- 单位:字节,示例配置为1GB,可按需调整大小 -->
          <requestLimits maxAllowedContentLength="1073741824" />
        </requestFiltering>
      </security>
    </system.webServer>
  </location>
  <!-- 新增:兼容IIS集成模式请求大小校验 -->
  <system.web>
    <!-- 单位:KB,数值需和上面的maxAllowedContentLength对应,示例为1GB -->
    <httpRuntime maxRequestLength="1048576" />
  </system.web>
</configuration>

2. 排查配置冲突

你当前在PageModel类上标注的[RequestFormLimits(MultipartBodyLengthLimit = 104857600)]限制为100MB,如果需要上传超过100MB的文件:

  • 要么把这个特性的参数值调整为和你全局配置一致的大小
  • 要么直接删除这个特性,使用你在Startup.cs中配置的全局FormOptions规则即可,避免局部特性覆盖全局配置导致不生效。

3. 本地IIS Express调试额外配置

如果本地用IIS Express调试时仍然报错,需要打开项目根目录下隐藏的.vs文件夹,找到config/applicationhost.config文件,修改对应站点的requestFiltering配置,把maxAllowedContentLength调整为你需要的大小即可。

注意:所有配置修改完成后,需要重启IIS站点或者重启调试进程,配置才会生效。

报错截图

Request Entity Too Large报错

内容的提问来源于stack exchange,提问作者Ervin Lara

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 06:48:22