解决ASP.NET中的FileUpload 不能上传大于4M文件的限制

ASP.NET的缺省设定只允许上传4M的文件,这是出于对网站安全性的考虑,为了防止网站受到Denial of Service attacks的攻击。

虽说是出于对网站安全性的考虑,但是程序却捕捉不到文件超过4M的异常。调试程序时即使设置了文件超过4M就退出,也只能看着网页超时,无能为力。调了好一阵,上网一搜,这个居然是微软设的陷阱!!

解决方案:

在web.config中的<system.web></system.web>内加入如下代码:

<httpRuntime executionTimeout="600" maxRequestLength="951200"

useFullyQualifiedRedirectUrl="true" 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 版本。对于生产环境,该属性不是必需的,可以禁用。

时间: 2024-10-14 11:15:56

解决ASP.NET中的FileUpload 不能上传大于4M文件的限制的相关文章

ASP.NET中扩展FileUpload的上传文件的容量

ASP.NET中扩展FileUpload只能上传小的文件,大小在4MB以内的.如果是上传大一点的图片类的可以在web.config里面扩展一下大小,代码如下 <system.web> <!--配置文件上传大小,该配置是上传文件的总大小不超过15MB==15360KB,缓存阈值改为100kB,这样可以上传稍微大一点的图片--> <httpRuntime maxRequestLength="15360" requestLengthDiskThreshold=&

使用html中的&lt;input&gt;标签上传多个文件(转)

如何使用html上传多个文件呢?我搜索中文怎么也找不到合适的,都是用js动态添加input,然后提交,不能满足我想要的——打开选择文件的窗口后可以一次性选择多个文件. 然后我尝试搜索英文"html input file multiple",终于在stackoverflow找到一个文章:http://stackoverflow.com/questions/1175347/how-can-i-select-and-upload-multiple-files-with-html-and-ph

centos如何在命令行中使用 ftp 命令上传和下载文件

本文中,介绍在 Linux shell 中如何使用 ftp 命令.包括如何连接 FTP 服务器,上传或下载文件以及创建文件夹.尽管现在有许多不错的 FTP 桌面应用,但是在服务器.SSH.远程会话中命令行 ftp 命令还是有很多应用的.比如.需要服务器从 ftp 仓库拉取备份. 步骤 1: 建立 FTP 连接 想要连接 FTP 服务器,在命令上中先输入ftp然后空格跟上 FTP 服务器的域名 'domain.com' 或者 IP 地址 例如: ftp domain.com ftp 192.168

ASP.NET 使用js插件出现上传较大文件失败的解决方法(ajaxfileupload.js第一弹)

在写这篇的时候本来想把标题直接写成报错的提示,如下: "SecurityError:Blocked a frame with origin "http://localhost:55080" from accessing a cross-origin frame." 但是有点长,会显示不全,就想还是换一下吧,想了一下 "ASP.NET 上传过大图片或文件报错解决办法", 然后当我写完这个题目之后,我觉得这篇文章好像根本没有写的必要,估计看完题目就会

asp.net中使用uploadify插件上传文件, session中的值丢失的问题

工作中遇到使用uploadify插件上传文件后,后台代码中的session[XXX]值为null的问题,反复跟踪,发现不是值丢失,而是sessionID发生了变化,而引起SessionID发生变化的原因就是因为使用了uplodify插件 解决方法: <script type="text/javascript"> var auth = "<% = Request.Cookies[FormsAuthentication.FormsCookieName]==nul

在centos64中搭建伪分布式 &amp; 上传和下载文件

环境: VMware-workstation-full-10.0.0-1295980.exe CentOS-6.7-x86_64-bin-DVD1.iso 开始: 个人习惯自己创建了两个目录 一个来放要安装的软件 一个来放软件安装的地址 解压安装jdk 配置jdk 配置完成之后重启才可以生效 我们执行一个命令本次就生效 这样javac  和 javac  就可以用了 看一下我们jdk 的版本 1.解压hadoop-2.6.0-x64.tar.gz 把解压后的文件移动到我们想要的目录 2.编辑et

asp.net 中使用JQuery Ajax 上传文件

首先创建一个网页,网页中添加如下代码. <h3>Upload File using Jquery AJAX in Asp.net</h3> <table> <tr> <td>File:</td> <td> <asp:FileUpload ID="fupload" runat="server" onchange='prvimg.UpdatePreview(this)' />

处理GitHub不允许上传大于100M文件问题

同样是记录一下自己工作遇到的问题,免得下次再遇到了还到处网上查资料解决. 自己的项目的版本控制用的是Git,代码仓库在github托管.项目里用到了百度导航SDK,由于百度导航SDK有了新版本,于是就更新到了新版本,更新好了之后想把代码push到github上,结果出错了,被拒绝,具体信息是:Total 3007 (delta 664), reused 0 (delta 0)remote: error: GH001: Large files detected.remote: error: Tra

ASP.NET简单实现APP中用户个人头像上传和裁剪

最近有个微信项目的用户个人中心模块中,客户要求用户头像不仅仅只是上传图片,还需要能对图片进行裁剪.考虑到flash在IOS和Android上的兼容性问题,于是想着能从js这块入手,在网上发现了devotion博主写的<适应各浏览器图片裁剪无刷新上传js插件>文章,从中受到些许启发,以此为参考,进行了简单的修改. 新建一个页面,代码如下: 1 <html xmlns="http://www.w3.org/1999/xhtml"> 2 <head id=&qu