第一种方法,主要适用于IIS6.0版本web
1、修改配置Web.Config文件中的httpRuntime节点
对于asp.net,默认只容许上传4M文件,增长以下配置,通常能够自定义最大文件大小.
1、修改配置Web.Config文件中的httpRuntime节点
对于asp.net,默认只容许上传4M文件,增长以下配置,通常能够自定义最大文件大小.windows
<httpRuntime安全
executionTimeout="800"服务器
maxRequestLength="40960"app
useFullyQualifiedRedirectUrl="false"/>asp.net
//executionTimeout预设(即默认)是 90 秒编辑器
//能够修改:executionTimeout = "180"ide
Asp.net支持的最大上传文件大小字体
在web.config中配置:ui
配置 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>
2、若是还不行,可使用思归提供的方案:
咱们在上传大文件时都遇到过这样或那样的问题。设置很大的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)
{
.....
}
}
3、IIS中上传大小的修改
一、首先要到进程中把IIS服务关了,即把inetinfo.exe进程关了,否则里面的文件不给你更改的哟~~~
二、在系统目录中找到: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,找到以下内容:
将红色部分修改为合适大小便可[1],单位为字节。
说明[1].IIS_schema.xml默认是没法修改的,即便是系统管理员也没法修改,必需修改下权限,再去掉其只读属性才可修改。上图为IIS_schema.xml默认权限,直接点击"编辑"按钮你会发现权限是不能修改的,还得先作以下操做:1).点击"高级"按钮进入高级安全设置界面;2).切换到"全部者"选项卡,点"编辑"按钮,选中Administrators后肯定;如今能够在"安全"选项卡上点击"编辑"按钮,给Administrators增长修改和写入权限了,再去掉IIS_schema.xml只读属性,系统管理员就能够修改文件了。