maxrequestlength 改了仍传不了大文件,因其仅控制 asp.net framework 层请求体大小(kb),而 iis 的 maxallowedcontentlength(字节)和 executiontimeout(秒)也需同步配置,且 system.web 与 system.webserver 段缺一不可。

为什么 maxRequestLength 改了还是传不了大文件?
因为 maxRequestLength 只控制 ASP.NET Framework 层面的请求体大小(单位是 KB),但 IIS 本身还有独立的限制,不改它,请求根本到不了 httpRuntime 这一层。常见现象是上传稍大点的文件直接返回 404.13 或 500 错误,而不是你预想的超限提示。
-
maxRequestLength默认值是 4096(即 4MB),设为20480表示 20MB - IIS 的
maxAllowedContentLength(单位是字节)必须同步调高,否则 IIS 在解析请求头时就拒绝了 - 如果用的是 IIS 7+,这个配置在
<system.webserver><security><requestfiltering></requestfiltering></security></system.webserver>下,不是system.web
httpRuntime 里 executionTimeout 和上传有什么关系?
上传大文件耗时长,如果 executionTimeout(单位秒)太短,ASP.NET 会在传输完成前就中断请求,报 HttpException: Request timed out。这不是网络超时,而是服务器端执行生命周期卡住了。
- 默认值是 110 秒,上传 100MB 文件在普通带宽下很容易超
- 设为
3600(1小时)比设成0更稳妥——0在某些 IIS 版本或集成模式下可能被忽略 - 注意:此超时也包含后续的
Page_Load处理时间,别只盯着上传阶段
Web.config 里 system.web 和 system.webServer 配置要配齐
缺一不可。只改 system.web 下的 httpRuntime,等于只修了半扇门;IIS 的网关还在拦着。
后台主要功能如下:1) 系统管理:管理员管理,网站配置,上传文件管理,QQ-MSN 在线客服设置。2) 企业信息:后台自由添加修改企业的各类信息及介绍。3) 产品管理:产品类别新增修改管理,产品添加修改以及产品的审核。4) 调查管理:发布修改新调查。5) 会员管理:查看修改删除会员资料,及锁定解锁功能。可在线给会员发信!6) 新闻管理:能分大类和小类新闻,不再受新闻栏目的限制。7) 留言管理:管理
-
system.web段负责 ASP.NET 管道逻辑:<httpruntime maxrequestlength="20480" executiontimeout="3600"></httpruntime> -
system.webServer段负责 IIS 原生模块:<security><requestfiltering><requestlimits maxallowedcontentlength="20971520"></requestlimits></requestfiltering></security> -
maxAllowedContentLength=20971520是 20MB 字节值,必须和maxRequestLength="20480"(KB)数值对应,否则会不一致出错
部署后不生效?检查这三个地方
改完 Web.config 不代表立刻起作用,尤其在共享主机或有缓存机制的环境里。
- 确认应用池是 .NET Framework 模式(非 Core),
httpRuntime对 .NET Core 完全无效 - IIS 中该站点是否启用了“配置编辑器”,且锁定级别没禁止
system.web/httpRuntime或system.webServer/security - 有些云平台(如 Azure App Service)会覆盖部分配置,需额外在门户中设置或用
applicationHost.xdt
真正麻烦的不是参数怎么写,而是两层限制(IIS + ASP.NET)、两个单位(字节 vs KB)、两个配置段(system.webServer vs system.web)之间必须严丝合缝。差一个零,或者漏一个段,上传就静默失败。









