要首先要修改IIS6.0中的asp请求的最大字节数,默认时为200K;
方法:打开位于 C:\Windows\System32\Inetsrv 中的 metabase.XML,
并修改 AspMaxRequestEntityAllowed 为你需要的值(例如 "1073741824", 1GB);
技术背景:
在 IIS 6.0 中, AspMaxRequestEntityAllowed 属性指定了一个 ASP 请求(Request)可以使用的最大字节数. 如果 Content-Length 头信息中包含的请求长度超过了 AspMaxRequestEntityAllowed 的值, IIS 将返回一个 403 错误信息.
这个属性值与 MaxRequestEntityAllowed 相似, 但是是针对 ASP 请求的. 假如你知道自己的 ASP 应用只需要处理很少的请求数据, 你可以在 World Wide Web Publishing Service (fig文件中添加一个httpRuntime主键
<httpRuntime executionTimeout="90" maxRequestLength="40960" useFullyQualifiedRedirectUrl="false"
minFreeThreads="8" minLocalRequestFreeThreads="4" appRequestQueueLimit="100"/>
maxRequestLength="40960" 是最大的请求数,单位为:K
(2)修改C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\CONFIG\machine.config文件
<httpRuntime executionTimeout="190" maxRequestLength="40960"
maxRequestLength="40960" 是最大的请求数,单位为:K
经实验,(1)和(2)只要一个就可以。
配置httpRuntime也可以让FileUpload上传更大的文件,不过设置太大了会因用户将大量文件传递到该服务器而导致的拒绝服务攻击(属性有说明)
<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"/>属性
属性选项说明appRequestQueueLimitASP.NET 将为应用程序排队的请求的最大数目。当没有足够的自由线程来处理请求时,将对请求进行排队。当队列超出了该设置中指定的限制时,将通过“503 - 服务器太忙”错误信息拒绝传入的请求。executionTimeout指示在被 ASP.NET 自动关闭前,允许执行请求的最大秒数。enable指定是否在当前的节点及子节点级别启用应用程序域。默认值为true。true指定启用应用程序域。false指定禁用应用程序域。应用程序将不会在内存中加载,任何客户端请求将导致出现错误号为 404 的错误。idleTimeOut指定应用程序域在经过多长的空闲时间后将予以关闭。默认值为20 分钟。enableKernelModeCache指定是否启用输出缓存。目前,该属性只有在安装 IIS 6.0 版或更高版本之后才起相应的作用。输出缓存的配置和请求的类型决定了是否对内容进行缓存。若要对响应进行缓存,必须满足以下条件:
- 必须通过页面指令或使用缓存 API 显式启用缓存。
- 缓存必须具有过期策略,以便内核知道何时放弃缓存。
- 缓存不能有任何变量标头或参数。
- 请求不能要求进行任何身份验证。