在Windows2003系统下,上传大文件时,出现错误“请求对象错误‘ASP 0104:80004005’”。
改win2003的iis 6.0限制asp的上传文件大小为200k,aspx的上传程序没有影响。在iis6.0中,默认设置特别严格和安全,最多只能传输204800字节。
这可以最大限度地减少因过度宽松的超时和限制而导致的攻击。IIS 6出于安全考虑,默认最大请求为200K(即最大数据提交限制为200K,204800Byte)。
(在IIS 6.0之前没有这种限制)
解决办法
选项1:
步骤1:修改IIS设置以允许直接编辑配置数据库。开放的互联网信息服务
第二步:首先关闭服务中的iis admin服务,在windows\system32\inetsrv\下找到metabase.xml,打开。
找到ASPMaxRequestEntityAllowed并将其修改为所需的值。默认值为204800,即200K。比如修改为51200000(50M)。
然后重新启动iis管理服务。
选项2:
创建一个包含以下内容的新文本文件:
'----------------------------------------------------
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兆字节)。