第一种方法,主要适用于IIS6.0版本

一、修改配置Web.Config文件中的httpRuntime节点
对于asp.net,默认只允许上传4M文件,增加如下配置,一般可以自定义最大文件大小.
一、修改配置Web.Config文件中的httpRuntime节点
对于asp.net,默认只允许上传4M文件,增加如下配置,一般可以自定义最大文件大小.

<httpRuntime

executionTimeout="800"

maxRequestLength="40960"

useFullyQualifiedRedirectUrl="false"/>

//executionTimeout预设(即默认)是 90 秒

//可以修改:executionTimeout = "180"

Asp.net支持的最大上传文件大小

在web.config中配置:

配置 ASP.NET HTTP 运行库设置。该节可以在计算机、站点、应用程序和子目录级别声明。

<configuration>
   <system.web>
      <httpRuntime>

<httpRuntime useFullyQualifiedRedirectUrl="true|false"
             maxRequestLength="size in kbytes"
             executionTimeout="seconds"
             minFreeThreads="number of threads"
             minFreeLocalRequestFreeThreads="number of threads"
             appRequestQueueLimit="number of requests"
             versionHeader="version string"/>
可选属性
属性 选项 说明

useFullyQualifiedRedirectUrl:指示客户端重定向是否是完全限定的(采用 {HYPERLINK "http://server/path" } 格式,这是某些移动控件所必需的),或者指示是否代之以将相对重定向发送到客户端。
    true 指定客户端重定向需要以完全限定的格式发送。这是通过自动将不是完全限定的格式的所有重定向转换为完全限定的格式来实现的。
    false 指定客户端重定向不需要被自动转换为完全限定格式。false 是默认选项。

maxRequestLength:指示 ASP.NET 支持的最大文件上载大小。该限制可用于防止因用户将大量文件传递到该服务器而导致的拒绝服务攻击。指定的大小以 KB 为单位。默认值为 4096 KB (4 MB)。

executionTimeout:指示在被 ASP.NET 自动关闭前,允许执行请求的最大秒数。

minFreeThreads:允许执行新请求的自由线程的最小数目。ASP.NET 为要求附加线程来完成其处理的请求使这些线程保持自由状态。

minFreeLocalRequestFreeThreads:ASP.NET 保持的允许执行新的本地请求的自由线程的最小数目。该线程数目是为从本地主机传入的请求而保留的,以防某些请求在其处理期间发出对本地主机的子请求。这避免了可能的因递归重新进入 Web 服务器而导致的死锁。

appRequestQueueLimit:ASP.NET 将为应用程序排队的请求的最大数目。当没有足够的自由线程来处理请求时,将对请求进行排队。当队列超出了该设置中指定的限制时,将通过“503 - 服务器太忙”错误信息拒绝传入的请求。

versionHeader:指定 ASP.NET 随每个响应所发送的版本头的值。Microsoft Visual Studio .NET 使用该属性来确定当前使用的 ASP.NET 版本。这对产品环境来说不是必需的,并且可以通过从 Web.config 或 Machine.config 移除该属性,或将该属性设置为空字符串 (versionHeader="") 来将其禁用。

示例
以下示例为 ASP.NET 应用程序指定 HTTP 运行时参数。

<configuration>
   <system.web>
      <httpRuntime maxRequestLength="4000"
         useFullyQualifiedRedirectUrl="true"
         executionTimeout="45"
         versionHeader="1.1.4128"/>
   </system.web>
</configuration>

二、如果还不行,可以使用思归提供的方案:

我们在上传大文件时都遇到过这样或那样的问题。设置很大的maxRequestLength值并不能完全解决问题,因为ASP.NET会block直到把整个文件载入内存后,再加以处理。实际上,如果文件很大的话,我们经常会见到Internet Explorer显示 "The page cannot be displayed - Cannot find server or DNS Error",好像是怎么也catch不了这个错误。为什么?因为这是个client side错误,server side端的Application_Error是处理不到的,可以参考这个帖子研究一下产生这个错误的机理。

handling server error when upload file too large

解决的方法是利用隐含的HttpWorkerRequest,用它的GetPreloadedEntityBody 和 ReadEntityBody方法从IIS为ASP.NET建立的pipe里分块读取数据

IServiceProvider provider = (IServiceProvider) HttpContext.Current;
HttpWorkerRequest wr = (HttpWorkerRequest) provider.GetService(typeof(HttpWorkerRequest));
byte[] bs = wr.GetPreloadedEntityBody();
....
if (!wr.IsEntireEntityBodyIsPreloaded())
{
        int n = 1024;
        byte[] bs2 = new byte[n];
        while (wr.ReadEntityBody(bs2,n) >0)
       {
             .....
        }
}

三、IIS中上传大小的修改

1、首先要到进程中把IIS服务关了,即把inetinfo.exe进程关了,不然里面的文件不给你更改的哟~~~
    2、在系统目录中找到:windows/system32/inesrv/metabase.xml”文件,找个文本编辑器打开他,我都用EditPuls(这家伙不错,带字体色彩的),Ctrl+F 找到AspMaxRequestEntityAllowed="204800"这一项,这就是iis上传文件的默认大小了,默认为204800Byte,也就是200KB,将它改为你需要的大小就可以了!

第二种方式,主要是针对于iis7.0版本

1. 在用户自己的asp.net应用中修改web config文件,增加或修改以下红色背景内容即可

<system.webServer>
    <security>
      <requestFiltering>
        <requestLimits maxAllowedContentLength="262144000"></requestLimits>
      </requestFiltering>
    </security>

2. 打开C:/Windows/System32/inetsrv/config/schema/IIS_schema.xml,找到如下内容:

程序代码
<element name="requestLimits">
   <attribute name="maxAllowedContentLength" type="uint" defaultValue="30000000" />
   <attribute name="maxUrl" type="uint" defaultValue="4096" />
   <attribute name="maxQueryString" type="uint" defaultValue="2048" />
   <element name="headerLimits">
     <collection addElement="add" clearElement="clear" removeElement="remove" >
       <attribute name="header" type="string" required="true" isUniqueKey="true" validationType="nonEmptyString" />
       <attribute name="sizeLimit" type="uint" required="true" />
     </collection>
   </element>
</element>

将红色部分修改成合适大小即可[1],单位为字节。

说明

[1].IIS_schema.xml默认是无法修改的,即使是系统管理员也无法修改,必需修改下权限,再去掉其只读属性才可修改。

上图为IIS_schema.xml默认权限,直接点击"编辑"按钮你会发现权限是不能修改的,还得先做如下操作:
1).点击"高级"按钮进入高级安全设置界面;
2).切换到"所有者"选项卡,点"编辑"按钮,选中Administrators后确定;

现在可以在"安全"选项卡上点击"编辑"按钮,给Administrators增加修改和写入权限了,再去掉IIS_schema.xml只读属性,系统管理员就可以修改文件了。

以上两种方式都是我在网上各种博客中搜集到的,是比较有效的方法。之前这个文件上传大小限制的问题,也纠结了好久,现在终于解决了,各种开心。现在把这些贴到博客里面来,希望能给大家一个帮助,也是给我留下痕迹,哈哈!

转:http://blog.sina.com.cn/s/blog_7ae9d7b901014fgi.html

转载于:https://www.cnblogs.com/mvv118/p/3906651.html

解决ASP.NET上传文件大小限制相关推荐

  1. 解除ASP.net上传文件大小的限制

    解除ASP.net上传文件大小的限制 2006-07-15 12:13 今天作了个上传的功能,用的是vs2005的FileUPLoad,在试了几次上传后发现这么个问题,如果上传的文件少于4m的话,一切 ...

  2. 【转载】解决Apache2+PHP上传文件大小限制的问题

    原文出处:http://evol1216.blog.163.com/blog/static/13019958020106783623528/ 在用PHP进行文件上传的操作中,需要知道怎么控制上传文件大 ...

  3. 怎样解决ASP图片上传漏洞的方法

    经常听说的ASP上传漏洞,即是将一些木马文件修改后缀名(修改为图像文件后缀),进行上传. 注意:经过西部e网icech的测试,CheckFileType并不能判断出伪装成GIF89a的文件. 针对此情 ...

  4. 解决angularjs判断上传文件大小

    为什么80%的码农都做不了架构师?>>>    在input控件中加入如下的代码 οnchange="angular.element(this).scope().viewI ...

  5. 解决linux服务器上传文件大小的限制

    有时候,我们需要从客户机向服务器传输一些文件,但是由于DBA在上传文件的安全配置上做了一些限制,导致我们上传的单个文件不能超过固定大小.也就导致我们无法传送大对象文件和大的压缩文件. 例如,我们使用S ...

  6. 帝国没有php.ini,帝国cms上传文件大小的限制php.ini设置方法

    本文将为您介绍的是解决帝国cms上传文件大小的限制php.ini设置方法,具体操作方法请看下文: 1. 一般的文件上传,除非文件很小.就像一个5M的文件,很可能要超过一分钟才能上传完. 但在php中, ...

  7. oracle asp.net上传 下载 文件大小只有32kb,asp默认上传大小

    asp.net 上传大文件大小控制方案 .NET默认允许上传4M的文件. 修改 Machine.config 文件,改动MaxRequestLength 参数的值.在c:\winnt\microsof ...

  8. asp.net实现ftp上传代码(解决大文件上传问题)

    asp.net实现ftp上传代码(解决大文件上传问题) 参考文章: (1)asp.net实现ftp上传代码(解决大文件上传问题) (2)https://www.cnblogs.com/LYunF/ar ...

  9. PHP上传文件大小限制问题 post_max_size对大小的影响及解决方法

    PHP上传文件大小限制问题 post_max_size对大小的影响及解决方法 参考文章: (1)PHP上传文件大小限制问题 post_max_size对大小的影响及解决方法 (2)https://ww ...

最新文章

  1. mysql存储过程或函数中传入参数与表字段名相同引发的悲剧
  2. C# 调用颜色的RGB值_RGB颜色转换十六进制颜色
  3. 高并发下的static类成员可能存在安全隐患
  4. dosbox 伪指令dd为什么会报错_什么是SQL函数?为什么使用SQL函数可能会带来问题?...
  5. 模拟产品展示 Flash无法展示的追踪过程
  6. Error: Could not find or load main class org.elasticsearch.tools.JavaVersionChecker
  7. fg、bg、jobs、、ctrl + z
  8. idea eclipse主题
  9. 3月第2周易盾业务风控关注 | 新版个人信息安全规范正式发布
  10. 【高等数学】四.多元函数微分学和二重积分
  11. 小梅哥Xilinx FPGA学习笔记10——串口通信发送
  12. 服务器安全-Dos-Deflate
  13. 上手 WebRTC DTLS 遇到很多 BUG,怎么解?
  14. 【解题报告】openjudge Freda的越野跑 数据结构与算法mooc 内排序
  15. 用word打开摄像头
  16. 9个不错的PDF搜索引擎
  17. 053试题 331/507/564/574/625/673 - restore datafile
  18. win7计算机收藏夹位置,win7中收藏夹在哪里 win7找到IE收藏夹的两种方法[多图]
  19. html 提示语为英文,耳熟能详的电话提示语英文版
  20. 大数据时代,企业如何进行有效的信息资源整合?

热门文章

  1. ElasticSearch配置扩展分词
  2. linux后台运行python脚本
  3. DM8168 开发环境搭建
  4. 用CRF做命名实体识别——NER系列(三)
  5. 知识图谱实践篇(二):关系数据库到RDF
  6. 【译】Writing a Simple Linux Kernel Module
  7. Automatic Exploit Generation:漏洞利用自动化
  8. python的数字比较好_说说 Python3 中的数字处理
  9. 启动非java虚拟机方式下运行matlab
  10. 【学习笔记】OI模板整理