调一个程序的时候出错,错误提示牛头不对马嘴,用VS脚本跟进去看了之后发现错误提示如下:Request 对象: 007~ASP 0104~不允许操作~
这才发现是个老问题了,windows 2003为了安全保障,默认只允许asp上传200k的文件,.net则不受这个限制。把解决方法记下来方便以后查找。
==========================================
办法一:
第一步:修改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兆)
==========================================
ps:方法二有时候可能不能马上生效,这是可以用命令行iisreset重起一下iis。到微软站点下载IIS6 Resource Kit Tools也可以解决这个问题。