qingtianyzl

晴天blog(QQ:14493558)
  博客园  :: 新随笔  :: 联系 :: 管理

Windows2003中IIS6.0文件上传大小限制解决方法(转)

Posted on 2008-06-03 11:24  晴天  阅读(1054)  评论(0)    收藏  举报

Question:
问题描述:
--------------------------------------------------------------------------------
Does Pure ASP Upload support uploading large files on Windows 2003 server? I'm getting the following error:
Request object error 'ASP 0104 : 80004005'
Operation not Allowed
/ScriptLibrary/incPureUpload.asp, line 40

上传大文件到 Windows 2003 server + IIS 6.0 服务器的时候遇到下列错误:
请求对象错误 'ASP 0104 : 80004005'
操作被禁止
/ScriptLibrary/incPureUpload.asp, 行 40

今天用新云的系统上传东西时出现“哥们,请选择一个有效的上传文件”总以为是配置不当造成的,在网上找了找资料,说是纯ASP上传2003服务器限制到200K.通过这个方法修改了一下服务器的配置,增加了上传大小,结果上面的问题解决了。贴上来与大家共享。

Answer:
原因:
--------------------------------------------------------------------------------
Yes, Pure ASP Upload supports uploading large files on the Windows 2003 server. However:
IIS6.0 prevent the upload of files more than +200Kb. So you need to make some changes in the default IIS settings first.

采用纯ASP技术上传大文件到Windows2003服务器,无论如何IIS6.0 禁止上传超过 200kB 的文件. 因此你需要修改 IIS 的默认设置.

Background
技术背景:
--------------------------------------------------------------------------------
For IIS6.0 users, the AspMaxRequestEntityAllowed property specifies the maximum number of bytes allowed in the entity body of an ASP request. If a Content-Length header is present and specifies an amount of data greater than the value of AspMaxRequestEntityAllowed, IIS returns a 403 error response.

This property is related in function to MaxRequestEntityAllowed, but is specific to ASP request. Whereas you might set the MaxRequestEntityAllowed property to 1 MB at the general World Wide Web Publishing Service (WWW Service) level, you may choose to set AspMaxRequestEntityAllowed to a lower value, if you know that your specific ASP applications handle a smaller amount of data.

在 IIS 6.0 中, AspMaxRequestEntityAllowed 属性指定了一个 ASP 请求(Request)可以使用的最大字节数. 如果 Content-Length 头信息中包含的请求长度超过了 AspMaxRequestEntityAllowed 的值, IIS 将返回一个 403 错误信息.
这个属性值与 MaxRequestEntityAllowed 相似, 但是是针对 ASP 请求的. 假如你知道自己的 ASP 应用只需要处理很少的请求数据, 你可以在 World Wide Web Publishing Service (WWW 发布服务)层级设定全局的 MaxRequestEntityAllowed 属性为 1MB, 并单独设定 AspMaxRequestEntityAllowed 为一个较小的值.

Solution:
解决方案--------------------------------------------------------------------------------
Open your metabase.XML which is located in c:\Windows\System32\Inetsrv find the line "AspMaxRequestEntityAllowed" and change it to "1073741824". This is 1GB - of course you can enter another value to suite your needs.

打开位于 C:\Windows\System32\Inetsrv 中的 metabase.XML, 并修改 AspMaxRequestEntityAllowed行为你需要的值单位:Byte(例如 "1073741824", 1GB)默认为204800Byte.

NOTE: Before you edit the file, be sure to stop the IIS service first or else you won't be able to save the file.

提示:在编辑文件前请停止 IIS 服务, 否则无法保存修改后的文件.
停止方法之一:命令行方式
停止:运行iisreset /stop
启动:运行iisreset /start

关于IISreset的详细信息见下:
IISRESET.EXE (C) Microsoft Corp. 1998-1999

用法: iisreset [computername]

/RESTART   停止然后重新启动所有 Internet 服务。

/START启动所有 Internet 服务。

/STOP 停止所有 Internet 服务。

/REBOOT    重新启动计算机。

/REBOOTONERROR如果在启动、停止或重新启动 Internet 服务时出错,则重新启动计算机。

/NOFORCE   如果试图正常停止服务失败,不强制终止 Internet 服务。

/TIMEOUT:val   指定等待 Internet 服务的成功停止的超时值(以秒为单位)。

   如果已指定 REBOOTONERROR 参数,超时后可以重新启动计算机。

   服务重新启动的默认值为 20 秒,停止为 60 秒,计算机重新启动为 0 秒。

/STATUS    显示所有 Internet 服务的状态。

/ENABLE    启用本地系统上 Internet 服务的重新启动。

/DISABLE   禁用本地系统上 Internet 服务的重新启动

60多年前,一个朋友给我讲了一个笑话,把我笑翻了,后来由于肚子太疼进了医院。医生给我做手术前,问我 为什么笑成这样,我就讲给他听。他听后狂笑不止,最后竟然笑死了。 我被送上了法庭。法官让我把那个笑话讲出来,由陪审团判定是否与过失杀人的事实要件符合,我要求签订免责合同。法官宣布休庭,一天后重新开庭,宣布接纳我的意见。于是,我当庭把那个笑话讲了出来,结果有人笑得敲桌子,有人笑得在地上打滚。后来,当天所有听到这个笑话的人都笑死了。 我瞬间成了名人,各路记者纷纷要求采访我,我知道这笑话讲出去可能构成公共侵害,于是对着镜头,我含糊地说了一番话,大意就是:“理由永远是谎言,信仰永远是自慰。节目播出后,引起巨大反响。可没想到,有一天,几个神秘便衣闯进我的卧室,把我连拖带拽拉到一个黑屋子里。过了好久,一束强光照到我脸上。我勉强睁开眼睛,惊呆了,坐在我面前的人是目前惟一与我一样家喻户晓的人——总统。 总统大致交待了抓我的目的,很简单:把这个笑话录下来,然后送到中东敌对国家的独裁者那儿,笑死他。我只好答应他的要求,同时提出此笑话属于大规模杀伤性武器,不可针对平民。总统答应了。 两星期后,总统宣布已经掌握了那个笑话的关键技术,并且在沙漠地区试用成功。这在国际间引起轩然大波,很多国家惊慌失措,国际军事学家将此命名为“笑威慑”。就在此时,东方一个国家突然宣布也掌握了该笑话,原来给我讲笑话的那哥们投靠了该国。于是,我们之间形成了“笑威慑平衡”。 三年后,4月1日,我终日担心的终于发生了:中东一个恐怖组织盗取了那个笑话的原始技术。结果,文明遭到前所未有的破坏,各国政府惶惶不可终日。联合国只好召开全球首脑大会,最后将4月1日设定为愚人节。 60多年过去了,我已经风烛残年。在离开世界之前,作为历史见证人,我想有必要把这个笑话讲给大家。那天,我朋友给我讲的这个笑话很简单,很短,就一句话: http://www.tf-studio.com/WORK/FUN/15.HTML 必须回复后,才能查看