Windows server 2003 IIS 上传文件不能超过200K解决方案

作者:站长 发布于:2012-5-20 21:09 Sunday 分类:随笔录

Windows server 2003 IIS 上传文件不能超过200K解决方案 


测试成功..好文章.使用无惧无组件上传类悲剧的朋友不妨试试
转自剑冢http://hi.baidu.com/swordtomb/home

在做表单上传文件程序的时候,发现有个很奇怪的问题。因为要上传文件,所以表单类型改为 enctype="multipart/form-data",使用的是无惧上传类2.2。在上传文件测试中,发现上传30多K的文件都很顺利,但是上传300K左右的图片,表单的值竟然无法通过upload_class.form方法取出。想了很久也不知道为什么,多次测试,都证明当上传小于100K的文件时,都可以通过upload_class.form方法取表单的值,当文件大于300k的时候,upload.form取出来的值都是空的。


百度了一下,发现一篇文章与我的遭遇类似,原来是服务器默认只能支持200K的文件上传,如果要上传大的文件,需要修改服务器默认上传文件大小限制。 


因为无惧上传类没有关于这种状况的判断逻辑,所以没有提示任何错误,只表现为内置的方法失灵。
Windows server 2003系统下,上传较大的文件时,出现“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服务(运行里输入 iisreset /stop),找到windows\system32\inesrv\下的metabase.xml, 打开,找到ASPMaxRequestEntityAllowed 把他修改为需要的值,默认为204800,即200K,如把它修改为51200000(50M)。 

然后重启iis admin service服务。(运行里输入 iisreset /restart) 

一定要先停止iis,不然文件在占用的情况下无法修改!

Powered by emlog 粤ICP备2022099484号 本站由耐思智慧提供计算服务