你以为的ASP.NET文件上传大小限制是你以为的吗
我们以为的文件大小限制
我们大家都知道ASP.NET为我们提供了文件上传服务器控件FileUpload,默认情况下可上传的最大文件为4M,如果要改变可上传文件大小限制,那么我们可以在web.config中的httpRuntime元素中添加maxRequestLength属性设置大小,同时为了支持大文件上传超时可以添加executionTimeout属性设置超时时间。网上有很多这样的例子,但实际情况是否是这样吗?
<httpRuntime maxRequestLength="" executionTimeout=""/>
测试环境
IIS 7.5、.NET 3.5 sp1
测试页面UploadFile.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="UploadFile.aspx.cs" Inherits="UploadFile" %><!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><title></title></head><body><form id="form1" runat="server"><div><asp:FileUpload ID="FileUpload1" runat="server" /><asp:Button ID="Button1" runat="server" Text="Button" /></div></form></body></html>
测试页面UploadFile.aspx.cs
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;public partial class UploadFile : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){if (FileUpload1.FileContent != null){FileUpload1.SaveAs(Server.MapPath("/Files/"+FileUpload1.FileName));}}}
实际测试
- 上传小于4M的文件
选择2.7M的pdf文件上传
上传提示成功
2. 上传大于4M的文件
选择上传4.3M的pdf文件
上传后报黄页
3. 修改web.config文件,设置可上传文件大小限制
修改web.config,增大可上传文件的大小限制,增大执行时间限制
<httpRuntime maxRequestLength="2048000" executionTimeout="600"/>
重新选择刚才4.3M的pdf文件,重新上传
上传成功
4. 上传大于30M的的文件
碰到这个问题的实际环境是我们使用了第三方的上传文件组件,通过js调用第三方的ActiveX控件上传文件,修改web.config后上传大于30M的文件的时候,报了
如下错误
查看windows系统日志,可以看到如下的日志错误,看到异常信息,我们可以猜测到是请求超长,但是我们设置了最大请求长度了啊,而且远远要大于30M。静
下来想一想可能是IIS限制的,查询相关的IIS资料,发现果然是这样。
异常消息: 超过了最大请求长度。在 System.Web.HttpRequest.GetEntireRawContent()在 System.Web.HttpRequest.GetMultipartContent()在 System.Web.HttpRequest.FillInFormCollection()在 System.Web.HttpRequest.EnsureForm()在 System.Web.HttpRequest.get_HasForm()在 System.Web.UI.Page.GetCollectionBasedOnMethod(Boolean dontReturnNull)在 System.Web.UI.Page.DeterminePostBackMode()在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
5. 修改IIS的配置
选中自己的站点,并双击“请求筛选”
选择右侧的”编辑功能限制”
在弹出的页面中,我们看到默认请求限制正是30M
修改请求大小限制为合适的值即可,保存后重启站点即可。
总结
1. Asp.NET作为微软的Web服务框架,其定义了web请求的大小限制和执行时间限制。同时其为上传文件提供了基础的框架,并为我们提供了UploadFile服务器控
件,其最终也是通过Http将文件数据传输到服务器端,自然也受请求大小和执行时间的限制,只是一般的请求都打不到这个极限,往往是上传文件的时候才会触及
这个阀值。
2. IIS作为windows平台上承载ASP.NET的法定服务器,按照正常逻辑来说,其也能统一设置发送到自己这里请求的大小限制。同时由于IIS只将针对特定类型的文
件的请求路由到ASP.NET进行处理,像js、css和图片等请求是不受ASP.NET中请求大小的限制的,这也从一个侧面说明有必要再IIS中添加控制。
3. 请求的长度校验只有先通过IIS的限制后,才有可能路由到ASP.NET,只有最终通过ASP.NET的长度限制校验,才能正常的进行后续的管道处理步骤。
转载于:https://www.cnblogs.com/wufengtinghai/p/3830695.html
你以为的ASP.NET文件上传大小限制是你以为的吗相关推荐
- ASP.NET文件上传大小的限制解决方案
ASP.NET文件上传大小的限制解决方案 参考文章: (1)ASP.NET文件上传大小的限制解决方案 (2)https://www.cnblogs.com/hgmyz/p/6068156.html 备 ...
- Asp.net 文件上传的 FileUpload FileName 和 FileUpload PostedFile.FileName的细节问题
Asp.net 文件上传的 FileUpload FileName 和 FileUpload PostedFile.FileName的细节问题 ASP.NET 文件上传估计大家都用得很熟悉,常用控件 ...
- java 文件上传 大小_java 上传文件大小转换为 GB/MB/KB/B
1.工具类 package cn.cmodes.common.utils; import java.io.File; import java.io.FileInputStream; import ja ...
- springboot设置文件上传大小(tomcat默认1M)
application.yml # 设置文件上传大小(tomcat默认1M) server:tomcat:max-http-form-post-size: -1 spring:servlet:mult ...
- struts2文件上传大小限制问题小结(引用)
最后解决办法: 页面js控制上传文件的大小,在页面进行控制.如下代码 inputs是所有文本上传input DOM //名称信息var nameStr='';//大小信息var sizeStr=''; ...
- IIS 6和IIS 7 中设置文件上传大小限制设置方法,两者是不一样的
在IIS 6.0中设置文件上传大小的方法,只要设置httpRuntime就可以了 <system.web><httpRuntime executionTimeout="36 ...
- 文件上传下载-修改文件上传大小
#上传时出现如下异常: 上传文件的大小超出默认配置 默认10M nested exception is java.lang.IllegalStateException: org.apache.tomc ...
- linux+nginx+mysql+php系统修改文件上传大小限制
linux+nginx+mysql+php系统修改文件上传大小限制 对于LNMP框架的一些网站,上传文件大小会受到多个方面的限制,一个是nginx本身的限制,限制了客户端上传文件的大小,会报错&quo ...
- springboot 上传图片大小_springboot 文件上传大小配置的方法
springboot上传文件大小的配置我这里记录两种,一种是设置在配置文件里只有两行代码,一种是加个Bean 首先第一种: application.properties中添加 spring.http. ...
最新文章
- .NET Core 常用加密和Hash工具NETCore.Encrypt
- 业界丨一文看懂AI人才百万美元年薪因何而来?
- 翻身的废鱼——论PHP从入门到放弃需要多久?15
- c语言 offsetof函数,C 库宏 - offsetof()函数
- 基于koa2开发的用户中心
- MATLAB机器学习系列-3:BP神经网络算例实现
- 蓝桥杯 ALGO-71 算法训练 比较字符串
- 所有windows的资料
- ThinkPHP 3.1.2 模板中的变量
- 回溯法求解n个元素的集合的幂集
- zend studio php配置,Zend Studio的配置和使用
- 华为内部经典项目管理体系
- 搞懂 PEM、ANS、PFX、P12、p8、CER、X509 等证书相关文件格式 后缀
- HTTP状态码:415
- php判断4的倍数,4的倍数特征(4的倍数特征规律怎样找)
- ebyte Lora 转 4G 透传通讯测试
- Python中随机数种子的作用及使用
- Anaconda从C盘移动到D盘
- es数据更新时间_京东到家订单中心系统mysql到es的转化之路
- 03. isasupperclass