
从提示的错误中可以知道是由于 Request 引起的 说明发送的数据对错了
突然想到 win2003 iis6 默认接收的数据是200KB 可能是POST数据超过了200KB
解决办法:
一、打开IIS选中 允许直接编辑配置数据库
二、用计事本打开 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配置数据库配置文件。
您好,ODBC管理器(Administrator)它负责安装驱动程序,管理数据源,并帮助程序员跟踪ODBC的函数调用。在ODBC中,应用程序不能直接存取数据库,它必须通过管理器和数据库交换信息。ODBC管理器负责将应用程序的SQL语句及其他信息传递给驱动程序,而驱动程序则负责将运行结果送回应用程序。运行32bit ODBC管理器后,出现一个主对话框,它的主要内容是要求用户输入一个数据源,所谓数据源就是数据库位置、数据库类型以及ODBC驱动程序等信息的集成。数据源负责将运行结果送回应用程序。应用程序、ODBC管理在使用之前必须通过ODBC管理器进行登记和连接,启动ODBC管理器后,选取Add按钮,根据自己的数据库类型,选择相应的ODBC驱动程序,然后输入数据源名(Data Source Name)和数据库文件名(Database Name),完成这些步骤后,以后的应用程序就能够通过ODBC管理器的数据源直接 *** 纵数据库。在Window95或者98下,ODBC管理器在控制面板里面的32bit ODBC。而在WINDOW2000下,ODBC管理器是在程序à管理工具à数据源(ODBC)中。第一次找它费了我好大的力气。后来动用了搜索才找到的。(想想自己还真够笨的。L)下面以Window2000下的ODBC管理器为例,介绍一下每一页的用途:1、 用户DSN:ODBC用户数据源存贮了如何与指定数据库提供者连接的信息。只对当前用户可见,而且只能用于当前机器上。这里的当前机器是只这个配置只对当前的机器有效,而不是说只能配置本机上的数据库。它可以配置局域网中另一台机器上的数据库的。2、 系统DSN: ODBC系统数据源存贮了如何指定数据库提供者连接的信息。系统数据源对当前机器上的所有用户都是可见的,包括NT服务。也就是说在这里配置的数据源,只要是这台机器的用户都可以访问。3、 文件DSN:ODBC文件数据源允许用户连接数据提供者。文件DSN可以由安装了相同驱动程序的用户共享。这是界于用户DSN和系统DSN之间的一种共享情况。4、 驱动程序:这页列出了本机上所有安装的数据库驱动程序。里面列举了每个驱动程序的名称,版本,提供商公司,驱动程序文件名,以及安装日期。5、 跟踪:ODBC跟踪允许创建调用ODBC的日志,提供给技术人员查看。里面可设定日志的路径和文件名。技术人员通过这里面的信息可以看到本机上所有的数据库访问的时间,用户,以及出错信息等情况。也可以通过这个辅助调试应用程序,可以启动Visual Studio的分析器,来进行ODBC的跟踪。6、 连接池:连接池允许应用程序重用原来打开的的连接句柄,这样可以节省到服务器的往返过程。7、 关于:最后这一页列出了所有的ODBC的核心文件。 这里,我们以常用的Access数据库为例子,来说明创建一个用户数据源的过程。假设我们已经通过Access创建了一个Sample.mdb文件(假设放在C:\DB\目录下),里面包含了所有的表,索引和数据。别的数据库可能不同,例如paradox数据库是把所有的表,索引,数据用不同的文件保存,但是都放在同一个目录下面。(别的如SQL Server,DB2,Oracle大型的数据库我们暂时不做介绍。因为一般非专业人员接触这样大型的数据库的机会不多,而且它们的配置都比较麻烦,当然,相应的功能也比小型的桌面数据库强,主要是提供了一些数据保护,数据安全,事务处理方面的东西。)首先在用户DSN这一页,单击填加。然后选择数据库的驱动程序,这里我们选择Microsoft Access Driver(*.mdb)。两外也有两项是以(*.mdb结尾)的。不过不能选那两个。然后单击完成。然后在数据源名(N)上指定一个名字,可以任意指定,以后在程序里面使用的DSN就是这个名字了。然后选择数据库,在d出的窗口中找到C:\DB\Sample.mdb,选择,确定。这里,有两个复选框,可以规定数据库以只读或者独占的方式打开。另外,也可以通过右下角的"网络(N)…"按纽选择网络上另一台机器上的数据库。返回到如下界面:这时,已经选择好了数据库,可以确定退出。另外,在高级按纽里面可以确定本数据源的访问密码。可以指定系统数据库。在选项按纽里面还可以设定缓冲区的大小等。这里面,缓冲区是在内存中开辟的一个区域,通过ODBC数据源的 *** 作实际上都是和缓冲区里面的数据打交道。由应用程序正常退出的时候,或者需要别的应用程序也需要访问硬盘上的数据,驱动程序发现硬盘上的数据不是最新的数据,就用缓冲区的数据来更新硬盘上的数据。在win2003的IIS 6.0中,默认设置特别严格和安全,最大只能传送 204,800 个字节,这样可以最大限度地减少因太宽松的超时和限制而造成的攻击。IIS 6 出于安全考虑,默认最大请求是200K(也即最大提交数据限额为200KByte,204800Byte,在 IIS 6.0 之前的版本中无此限制) 。解决办法一:
第一步:修改IIS设置,允许直接编辑配置数据库。打开 Internet信息服务管理器,在“本地计算机”上点右键选属性,在Internet信息服务选项中选中“允许直接编辑配置数据库”。第二步:在服务里关闭 iis admin service服务,找到windows\system32\inesrv\下的metabase.xml 打开,找到ASPMaxRequestEntityAllowed 修改为需要的值,默认为204800,即200K,如把它修改为52428800(50M)。第三步:重启iis admin service服务。解决办法二:新建一个文本文件,内容如下:'----------------------------------------------------set providerObj=GetObject("winmgmts:/root/MicrosoftIISv2")set vdirObj=providerObj.get("IIsWebVirtualDirSetting='W3SVC/1/ROOT'")WScript.Echo "Before: " &vdirObj.AspMaxRequestEntityAllowedvdirObj.AspMaxRequestEntityAllowed=51200000vdirObj.Put_()WScript.Echo "Now: " &vdirObj.AspMaxRequestEntityAllowed'----------------------------------------------------然后保存为.vbs文件,如:vf.vbs
然后在命令行模式下,执行 cscript 文件路径及文件名,如:cscript d:\vf.vbs这样ASP上传大小就更改为了上面设置的:51200000字节 (50兆)。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)