【www.gdgbn.com--J2EE/EJB/服务器】

症状
上传文件到 windows  server + iis 6.0或者iis7.0 服务器的时候遇到下列错误:

请求对象错误 "asp 0104 : 80004005′

操作被禁止

原因
iis6.0 和iis7禁止上传超过 200kb 的文件. 因此你需要修改 iis 的默认设置。

当然此200k限制仅限无组件上传,如果使用aspupload等上传时不会有此限制。

解决方法
iis6

首先停止 iis 服务,之后打开 c:windowssystem32inetsrv 中的 metabase.xml, 并修改 aspmaxrequestentityallowed 为你需要的值(例如 1073741824, 1gb)。启动iis服务。

若你想在iis运行的时候修改其配置文件,则打开iis管理器,打开internet信息服务属性面板,钩选"允许直接编辑配置数据库教程,允许在iis运行时编辑iis配置数据库配置文件"

iis7

启动internet 信息服务(iis)管理器,选中要修改的站点,选择asp图标,在限制属性里面找到最大请求实体主机限制,改为你所需要的值。

技术背景
在 iis 6.0 中, aspmaxrequestentityallowed 属性指定了一个 asp 请求(request)可以使用的最大字节数. 如果 content-length 头信息中包含的请求长度超过了 aspmaxrequestentityallowed 的值, iis 将返回一个 403 错误信息.

这个属性值与 maxrequestentityallowed 相似, 但是是针对 asp 请求的. 假如你知道自己的 asp 应用只需要处理很少的请求数据, 你可以在 world wide web publishing service (www 发布服务)层级设定全局的 maxrequestentityallowed 属性为 1mb, 并单独设定 aspmaxrequestentityallowed 为一个较小的值.

 

request 对象 错误 "asp 0104 : 80004005" 
 
不允许操作
分析:

 从提示的错误中可以知道是由于 request  引起的 说明发送的数据对错了

突然想到 win2003 iis6 默认接收的数据是200kb 可能是post数据超过了200kb

解决办法:

一、打开iis在 本地计算机上查看属性如下图:

 

选中 允许直接编辑配置数据库

二、用计事本打开 c:windowssystem32inetsrv 中的 metabase.xml

找到 aspmaxrequestentityallowed="204800"

把后面的 204800 改一个大点的数值

然后保存。

 

看一下动易的错 误 号:-2147467259
错误描述:request 对象错误 "asp 0104 : 80004005"不允许操作~
错误来源:request 对象
 
    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服务,找到windowssystem32inesrv下的metabase.xml, 打开,找到aspmaxrequestentityallowed 把他修改为需要的值,默认为204800,即200k,如把它修改为51200000(50m)。
    然后重启iis admin service服务。

本文来源:http://www.gdgbn.com/jsp/25614/