从提示的错误中可以知道是由于 Request 引起的 说明发送的数据对错了
突然想到 win2003 iis6 默认接收的数据是200KB 可能是POST数据超过了200KB
解决办法:
二、用计事本打开 C:\Windows\System32\Inetsrv 中的 metabase.XML
找到 AspMaxRequestEntityAllowed="204800"
把后面的 204800 改一个大点的数值
然后保存。
2.
问题:上传图片时,单个文件上传都没有问题(图片尺寸没有超过200K),但选择批量上传(5个文件,肯定超过200K了)时就出现了下述问题,
“Request 对象 错误 \'ASP 0104 : 80004005\'
不允许 *** 作
upload.inc,行 80 ”
上网查找原因,找到了解决办法,综合了几个帖子的内容转述如下:
症状:
上传文件到 Windows 2003 server + IIS 6.0 服务器的时候遇到下列错误:
请求对象错误 \'ASP 0104 : 80004005\'
*** 作被禁止
/Upload.asp, line 80
原因:
在使用Windows2003作为web服务器的时候,当提交较多内容或上传较大文件时会出现如下错误:Request 对象 错误 \\’ASP 0104 : 80004005\\’ 不允许 *** 作。也就是我们这里说的ASP“0104:0x80004005”错误,其实这是微软在2003系统,准确地说是IIS6里面对安全的一个考虑,它对request的大小作了限制,最大为204800字节,也就是200K,这样可以最大限度地减少因以前太宽松的超时和限制而造成的攻击。
技术背景:
在 IIS 6.0 中, AspMaxRequestEntityAllowed 属性指定了一个 ASP 请求(Request)可以使用的最大字节数. 如果 Content-Length 头信息中包含的请求长度超过了 AspMaxRequestEntityAllowed 的值, IIS 将返回一个 403 错误信息.
这个属性值与 MaxRequestEntityAllowed 相似, 但是是针对 ASP 请求的. 假如你知道自己的 ASP 应用只需要处理很少的请求数据, 你可以在 World Wide Web Publishing Service (WWW 发布服务)层级设定全局的 MaxRequestEntityAllowed 属性为 1MB, 并单独设定 AspMaxRequestEntityAllowed 为一个较小的值.
解决办法:
方法一:
1、先打开Internet 信息服务(IIS)管理器;
(本地计算机 )---- 属性 ----允许直接编辑配置数据库(N)
一定要勾选“允许直接编辑配置数据库(N)”
2、然后在服务里关闭iis admin service服务;
3、找到windows\\system32\\inesrv\\下的metabase.xml,用计事本打开metabase.xml,找到ASPMaxRequestEntityAllowed把他修改为需要的值,默认为204800,把它修改为51200000(50M);
4、然后重启iis admin service服务。
方法二:
1、新建一个文本文件;
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
2、将以上内容保存为change.vbs;
3、在cmd命令行界面下执行
cscript [path]change.vbs
方法三:
1、下载工具Internet Information Services (IIS) 6.0 Resource Kit Tools,并安装,记得自定义一下,里面有一些用不到,这里只用到Metabase Explorer;
2、开始-程序菜单-IIS Resources-Metabase Explorer,运行Metabase Explorer;
3、修改(local)\\LM\\W3SVC\\AspMaxRequestEntityAllowed属性,修改为较大的值,如51200000(50M)。
在编辑文件前如果没有停止IIS服务,则无法保存修改后的文件。
若你想在iis运行的时候修改其配置文件,则打开iis管理器,打开internet信息服务属性面板,钩选“允许直接编辑配置数据库,允许在iis运行时编辑iis配置数据库配置文件。
解除IIS的文件上传限制的方法首先
在IIS中右键“本地计算机”选择“属性”,钩选“允许直接编辑配置数据库”。
然后依次打开“控制面板--管理工具--服务”,在其中右边找到“IIS Admin Service”,选中该项并点击鼠标右键,选中“停止”即可关闭该服务。
修改C:/Windows/System32/inetsrv/config/schema/IIS_schema.xml文件(修改该文件需要获得这个文件的控制权),找到maxAllowedContentLength, 其默认值为30000000,即30M,加一个0 就变成了 300MB 了就应该够用了,如果不起作用,则需要重启 IIS 7!
修改之后如下:
<element name="requestLimits"> <attribute name="maxAllowedContentLength" type="uint" defaultValue="30000000" /> <attribute name="maxUrl" type="uint" defaultValue="4096" /> <attribute name="maxQueryString" type="uint" defaultValue="2048" /> <element name="headerLimits"> <collection addElement="add" clearElement="clear" removeElement="remove" ><attribute name="header" type="string" required="true" isUniqueKey="true" validationType="nonEmptyString" /><attribute name="sizeLimit" type="uint" required="true" /> </collection> </element>
再修改web.config里面的
<add key="CookieTimeOut" value="30" /> <add key="imageSize" value="-1" /> <add key="fileSize" value="10000" />(大小改这里)<add key="fileLimit" value="10" />
检查web.config的httpRuntime :
<httpRuntime maxRequestLength="2097151" executionTimeout="50000" />
在执行本主题中的步骤之前,请考虑下列因素:由于从 Active�0�2Directory 到 IIS 元数据库的更新是一种单向复制,因此直接在 IIS 元数据库中修改设置时请务必小心。在下一个更新周期,元数据库更新服务可能覆盖 SMTP 虚拟服务器所有已更改的值。建议您使用 Exchange 系统管理器配置 Exchange�0�22003 服务器上的 SMTP 服务,并仅仅修改 Exchange 系统管理器中没有的那些参数,如 ConnectResponse 设置。
错误地编辑元数据库可能导致严重的问题,甚至可能需要重新安装 Exchange 服务器。Microsoft 无法保证您能够解决由于错误地编辑 IIS 元数据库而导致的问题。编辑元数据库的风险由您自己承担。在应用任何更改之前,请确保您有元数据库文件的有效备份副本。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)