ASP.Net在web.config中设置上传文件的大小方法
修改Webcong文件:
<system.web>
<httpRuntime maxRequestLength="40960"   //即40MB,1KB=1024
useFullyQualifiedRedirectUrl="true"
executionTimeout="6000"
useFullyQualifiedRedirectUrl="false" 
minFreeThreads="8" 
minLocalRequestFreeThreads="4" 
appRequestQueueLimit="100" 
enableVersionHeader="true"
/>
</system.web>
其中与上传有密切关系的是:
如果服务器内存512M,已可上传大小160M的文件。
WebConfig配置连接超时
<!--
        executionTimeout="90" 改为 executionTimeout="720" by wp 2007.9.4 executionTimeout表示允许执行请求的最大时间限制,单位为秒
        maxRequestLength:指示 ASP.NET 支持的最大文件上载大小。指定的大小以 KB 为单位。默认值为 4096 KB (4 MB)。
        -->
       
 <httpRuntime executionTimeout="720" maxRequestLength="65536"
useFullyQualifiedRedirectUrl="false" minFreeThreads="8"
minLocalRequestFreeThreads="4" appRequestQueueLimit="100"
enableVersionHeader="true"/>
        
<!--
httpRuntime是配置asp.net http运行时设置,以确定如何处理对asp.net应用程序的请求。
     executionTimeout:表示允许执行请求的最大时间限制,单位为秒
     maxRequestLength:指示 ASP.NET 支持的最大文件上载大小。该限制可用于防止因用户将大量文件传递到该服务器而导致的拒绝服务攻击。指定的大小以 KB 为单位。默认值为 4096 KB (4 MB)。
     useFullyQualifiedRedirectUrl:表示指示客户端重定向是否是完全限定的(采用 "http://server/path" 格式,这是某些移动控件所必需的),或者指示是否代之以将相对重定向发送到客户端。如果为 True,则所有不是完全限定的重定向都将自动转换为完全限定的格式。false 是默认选项。
     minFreeThreads:表示指定允许执行新请求的自由线程的最小数目。ASP.NET 为要求附加线程来完成其处理的请求而使指定数目的线程保持自由状态。默认值为 8。
   
 minLocalRequestFreeThreads:表示ASP.NET
保持的允许执行新本地请求的自由线程的最小数目。该线程数目是为从本地主机传入的请求而保留的,以防某些请求在其处理期间发出对本地主机的子请求。这避免了可能的因递归重新进入
 Web 服务器而导致的死锁。
    appRequestQueueLimit:表示ASP.NET 将为应用程序排队的请求的最大数目。当没有足够的自由线程来处理请求时,将对请求进行排队。当队列超出了该设置中指定的限制时,将通过“503 - 服务器太忙”错误信息拒绝传入的请求。
    enableVersionHeader:表示指定 ASP.NET 是否应输出版本标头。Microsoft Visual Studio 2005 使用该属性来确定当前使用的 ASP.NET 版本。对于生产环境,该属性不是必需的,可以禁用。
到这里web.config的设置就已经结束。
可是一旦上传文件的大小超过了这个设置的文件大小范围就会发生如下错误:
该页无法显示 
您要查看的页当前不可用。网站可能遇到技术问题,或者您需要调整浏览器设置。 
虽然解决不了,那也要捕获这个错误啊!怎么办呢?
最近吃了几条鱼,想了想,由于这个错误是由file控件引发的前台错误,所以在后台想利用try...catch来捕获是行不通的。
于是想到了利用.NET的错误捕获页面的机制来处理。可行哦。
1、先设置web.config
<customErrors mode="On"/> 
2、新建一个error.aspx 文件,专门用来捕获错误的。
3、在上传文件的aspx页面的前台页面里添加page指令。ErrorPage="UploadError.aspx"
4、在error.aspx中添加一些代码来判断错误信息是否是file引起的前台错误。
public class UploadError : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
Exception ex = Server.GetLastError();
if (ex != null)
{
Response.Redirect("../error.aspx");
}
else //前台错误ex为空值
{ 
Response.Redirect("uploadexcel.aspx?err=1"); //重新跳转到上传页面,加上err参数是为了显示错误信息
}
}
5、显示错误提示。
public class uploadexcel : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
if (Request["err"] == "1")
{
Page.RegisterStartupScript("budget","<script
 language = javascript>alert('Upload file has failed ! File size is
too large !')</script>");
}
}
}
缺点:文件太大可能达不到你的要求的。比如你想要限到30M.但你会发现。上传20M时就出错了。因为IIS那里就会认为你进行OS攻击了。把你的页面给喀嚓了。这样子页面就会有问题。所以最好的方法是在客户端用JS进行验证。 
web.config配置方法:
maxRequestLength的单位是KB
<?xml   version= "1.0 "   encoding= "utf-8 "   ?> 
<configuration> 
    <system.web> 
        <httpRuntime   
            maxRequestLength= "1048576 "   //最大长度 
            executionTimeout= "3600 "   //最大响应时间。 
        /> 
    </system.web> 
</configuration> 
ASP.Net在web.config中设置上传文件的大小方法的更多相关文章
- iis7/7.5设置上传文件最大大小
		
本编今天接到一个客户的修改,说一个68M的pdf文件上传不上去,但是我本地开启断点调试了好几遍,都没有问题,能正常上传文件,由此确定不是代码问题.然后我试着上传5M左右的pdf却能正常的上传,然后上传 ...
 - springboot 项目打包部署后设置上传文件访问的绝对路径
		
1.设置绝对路径 application.properties的配置 #静态资源对外暴露的访问路径 file.staticAccessPath=/upload/** #文件上传目录(注意Linux和W ...
 - asp.net mvc 3 配置全局错误处理 Web.config中设置CustomError
		
摘自: http://www.myexception.cn/web/1130191.html asp.net mvc 配置全局异常处理 Web.config中设置CustomError Web.con ...
 - Asp.Net中的获取Web.config中设置的参数!(前后台的代码示例)
		
一.Web.config中设置代码 <appSettings> <add key="deleted" value="1" ...
 - ASP.NET web.config中数据库连接字符串connectionStrings节的配置方法
		
ASP.NET web.config中数据库连接字符串connectionStrings节的配置方法 第一种情况,本地开发时,使用本地数据库,如下面的代码 <connectionStrings& ...
 - ASP.Net调整允许上传文件的大小
		
1.用户上传视频文件注意:调整允许上传文件的大小:ASP.Net为了防止过大的http恶意请求阻塞网站,所以限定了每次上传文件最大4M,asp.net1.1中把用户上传的文件先放到内存中,2.0后如果 ...
 - 基于spring-boot的web应用,ckeditor上传文件图片文件
		
说来惭愧,这个应用调试,折腾了我一整天,google了很多帖子,才算整明白,今天在这里做个记录和分享吧,也作为自己后续的参考! 第一步,ckeditor(本博文论及的ckeditor版本4.5.6)的 ...
 - web 表单方式上传文件方法(不用flash插件)
		
原理:使用表单的input type="file"标签,通过ajax提交表单请求,后台获取请求中的文件信息,进行文件保存操作 由于我测试用的做了一个上传文件和上传图片方法,所以我有 ...
 - 基于Ubuntu Server 16.04 LTS版本安装和部署Django之(三):设置上传文件夹权限(这里测试用完全共享)
		
基于Ubuntu Server 16.04 LTS版本安装和部署Django之(一):安装Python3-pip和Django 基于Ubuntu Server 16.04 LTS版本安装和部署Djan ...
 
随机推荐
- 前端内容安全策略(csp)
			
什么是CSP CSP全称Content Security Policy ,可以直接翻译为内容安全策略,说白了,就是为了页面内容安全而制定的一系列防护策略. 通过CSP所约束的的规责指定可信的内容来源( ...
 - Spring目前用到的知识点
			
2017/7/28 目前的工作,spring用到到的地方 在当前类有下列的代码 private BookDao bookDao bookDao.调用方法 点开这个方法,声明指向的是BookDao这个接 ...
 - ubuntu 安装php 报错解决
			
安装php时候遇到的问题: dpkg: 处理软件包 php7.1-opcache (--configure)时出错: 依赖关系问题 - 仍未被配置dpkg: 依赖关系问题使得 php7.1-readl ...
 - Hive2:Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
			
[root@node1 ~]# hive which: no hbase in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bi ...
 - 构建一个dbt 数据库适配器
			
脚手架新的适配器 首先,将odbc适配器模板复制到同一目录中的新文件. 更新dbt / adapters / factory.py以将新适配器包含为类型.还要将类型添加到dbt / contracts ...
 - android 工具类  数据库管理
			
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/xuduzhoud/article/details/27540301 数据库工具类,优雅的管理andr ...
 - 00.嵌入式Linux开发环境搭建
			
3.虚拟机上网配置 虚拟机如果要从网上获取资源,就要能够访问外网.虚拟机有三种上网方式:桥接上网,NAT上网,单主机模式[没用过].本节从原理和操作2个方面讲了NAT方式和桥接方式这2种不同的虚拟机 ...
 - mime type 类型名字应该用多长的字段?
			
在使用 FastAdmin 时有 mimetype 字段使用了 50 长度,有小伙伴反应,不够. 在 Linux 服务器上时 xlsx 文件的 mimetype 是 application/vnd. ...
 - RequireJS 学习
			
几个学习点: 配置模块路径 定义模块 配置不支持 AMD jsonp 服务 text 插件 css 插件
 - mySQL 教程 第2章 安装和介绍mySQL
			
设置mySQL字符集 支持中文的字符集是utf8,该设置可以更改mySQL配置文件进行全局设置,也可以针对数据库设置,也可以针对表设置,也可以针对列设置.字符集更改后新插入的数据生效,对以前不生效. ...