用Win2003做服务器上传文件不能超过200K的解决方案
2005年10月30日 | 作者: 牧天 | 分类: Domain/Host
很久以前就发现我的Blog上传文件大小不能超过200K,在后台管理中有一项是关于设置上传文件大小限制的,可是改过以后发现当值设在200K以下时能够生效,改到200K以上时就不起作用了,文件大小依旧不能超过200K限制。为此我反复的研究上传的程序,一直没有发现原因所在,这令我郁闷了很长时间,后来就不得不放弃了。
今天偶然在波希米亚的Blog中读到了“用Win2003做服务器上传文件不能超过200K的解决方案”一文,才恍然明白其中的奥妙。以下是转载波希米亚的文章,希望同样为此问题不解的朋友也能通过阅读此文使问题得到化解。
Windows2003系统下,上传较大的文件时,出现“Request 对象 错误 ‘ASP 0104 : 80004005′”错误。更改win2003的IIS 6.0对asp的上传文件大小为200k限制,aspx的上传程序没有影响。在IIS6.0中,默认设置是特别严格和安全的,最大只能传送 204,800 个字节,这样可以最大限度地减少因以前太宽松的超时和限制而造成的攻击。IIS 6 出于安全考虑, 默认最大请求是200K(也即最大提交数据限额为200KByte,204800Byte)。(在 IIS 6.0 之前的版本中无此限制)
解决方案一:
第一步:修改IIS设置,允许直接编辑配置数据库。先打开,Internet信息服务,如下图:

第二步:先在服务里关闭iis admin service服务,找到windows\system32\inesrv\下的metabase.xml, 打开,找到ASPMaxRequestEntityAllowed 把他修改为需要的值,默认为204800,即200K,如把它修改为51200000(50M)。
然后重启iis admin service服务。
解决方案二:
新建一个文本文件,内容如下:
‘—————————————————-
set providerObj=GetObject(”winmgmts:/root/MicrosoftIISv2″)
set vdirObj=providerObj.get(”IIsWebVirtualDirSetting=’W3SVC/1/ROOT’”)
WScript.Echo “Before: ” & vdirObj.AspMaxRequestEntityAllowed
vdirObj.AspMaxRequestEntityAllowed=51200000
vdirObj.Put_()
WScript.Echo “Now: ” & vdirObj.AspMaxRequestEntityAllowed
‘—————————————————-
然后保存为.vbs文件,如:vf.vbs
然后在命令行模式下,执行 cscript 文件路径及文件名,如: cscript d:\vf.vbs
这样ASP上传大小就更改为了上面设置的:51200000字节 (50兆)
( 转自: Bohemia )
[eek] 原来这样,,,2003默认设置苛刻,也可理解