IIS 允许大文件上传需同时调整 IIS 层、ASP.NET层(及 ASP 层)的请求大小限制,并配置超时与磁盘空间,以下是详细操作步骤。
核心限制参数(先明确关键配置)
| 参数 | 层级 | 默认值 | 单位 | 作用 |
| maxAllowedContentLength | IIS(requestFiltering) | 30,000,000(约 28.6MB) | 字节 | IIS 层面最大请求体长度 |
| maxRequestLength | ASP.NET(httpRuntime) | 4096(4MB) | KB | ASP.NET层面最大请求大小 |
| AspMaxRequestEntityAllowed | ASP | 200,000(约 200KB) | 字节 | ASP 页面 POST 数据上限 |
| executionTimeout | ASP.NET | 110 秒 | 秒 | 请求最长执行时间 |
方法一:IIS 管理器图形界面配置(适合快速操作)
修改 IIS 请求筛选(maxAllowedContentLength)
打开 IIS 管理器,选中目标站点 / 应用程序。
双击 “请求筛选”→右侧 “编辑功能设置”。
输入 “允许的最大内容长度(字节)”,如 50MB 设为 52428800,点击 “确定”。
修改ASP.NET请求限制(maxRequestLength)
选中站点→双击 “配置编辑器”。
路径选 system.web/httpRuntime,修改maxRequestLength(如 50MB 设为 51200),executionTimeout设为 3600(1 小时),点击 “应用”。
修改 ASP 请求限制(AspMaxRequestEntityAllowed,仅 ASP 应用)
选中站点→双击 “ASP” 功能。
展开 “限制属性”,修改 “最大请求实体主体限制”(如 50MB 设为 52428800),点击 “应用”。
方法二:web.config 配置文件(适合版本控制 / 批量部署)
在站点根目录的 web.config 中添加以下节点,示例为允许 500MB 上传、超时 1 小时:
xml
<configuration>
<!– IIS层:maxAllowedContentLength(字节) –>
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength=”524288000″ /> <!– 500MB –>
</requestFiltering>
</security>
</system.webServer>
<!– ASP.NET层:maxRequestLength(KB)+ executionTimeout –>
<system.web>
<httpRuntime maxRequestLength=”512000″ executionTimeout=”3600″ /> <!– 500MB,1小时 –>
</system.web>
</configuration>
若为 ASP 应用,需额外在 IIS 管理器的 ASP 功能中修改 AspMaxRequestEntityAllowed,或通过 applicationHost.config 配置。
方法三:applicationHost.config 全局配置(适合服务器级统一设置)
打开 C:\Windows\System32\inetsrv\config\applicationHost.config(管理员权限)。
找到 <system.webServer><security><requestFiltering>,添加 / 修改:
xml
<requestLimits maxAllowedContentLength=”524288000″ /> <!– 500MB –>
保存后重启 IIS 服务(命令行:iisreset)。
额外配置(避免上传失败)
磁盘空间:确保站点所在磁盘有足够空间存放上传文件。
连接超时:IIS 管理器→站点→“高级设置”→“连接超时” 设为 3600 秒。
应用池队列与回收:应用池→高级设置→“队列长度” 调至 1000,“回收” 避免上传中重启。
防火墙 / 反向代理:检查防火墙、负载均衡器是否限制大请求,同步调整。
验证与测试
上传对应大小的文件,若出现 404.13 错误,检查 maxAllowedContentLength 是否生效。
若出现 “请求超时”,延长 executionTimeout 与连接超时。
若为 ASP 应用,确认 AspMaxRequestEntityAllowed 已修改。
安全与性能建议
限制上传文件类型与路径,防止恶意文件上传。
大文件建议分块上传(如用 JavaScript 分块 + 后端合并),降低超时风险。
避免设置无上限限制,根据业务需求设合理值(如 10GB 以内)。

