关闭

asp中的80020009错误

1556人阅读 评论(0) 收藏 举报

我们以前遇到过这种情况,Request.Form提交的数据太多了,导致IIS报告异常“堆栈溢出. 处理中的数据超过允许的极限”。这是因为iis默认设置中最大只能接受200K的内容。是这里造成的原因。

IIS6 可以做以下调整。

先在服务里关闭iis admin service服务
找到windows/system32/inesrv/下的metabase.xml,
打开,找到ASPMaxRequestEntityAllowed 把他修改为需要的值,默认为204800,即200K
然后重启iis admin service服务

把它修改为51200000(50M)

IIS5.0/4.0 在注册表内 -

Description of the MaxClientRequestBuffer Registry Value

Default Sizes in IIS 4 and 5
In IIS 4.0, the default maximum size of request line and header fields is 2 megabytes (MB).

In IIS 5.0, this is reduced to 128 kilobytes (KB).
In IIS 5.0 with Windows 2000 Service Pack 4 installed, this is reduced to 16 KB.

另外小雨在工作中也找到一种方法,现与大家分享:

提交页面的代码

<SCRIPT Language=javascript>
//分块上传
function FragmentUp()
{
var tlngFragmentSize = 51100;//50K
var tintFragmentCount = 0;
var tintI = 0;
var tstrContent = new String;
var tstrOuterHTML = new String;
tstrContent = document.form1.content_html.value;
tintFragmentCount = tstrContent.length / tlngFragmentSize + 1;

for(tintI=0;tintI<tintFragmentCount;tintI++){
tstrOuterHTML = tstrOuterHTML+"<INPUT type=/"hidden/" name=/"F07/">";
}

document.form1.F07.outerHTML = tstrOuterHTML;

for(tintI=0;tintI<tintFragmentCount;tintI++){
document.form1.F07[tintI].value = tstrContent.substr(0, tlngFragmentSize);
tstrContent = tstrContent.substr(tlngFragmentSize);
}
}

</SCRIPT>

<form name="form1">
<input type="hidden" name="F07">
<textarea name="content_html"></textarea>
</form>

后台接收处理的页面代码:

<%
dim content
for i=1 to request("F07").count
content=content&request("F07")(i)
next
%>

来源:http://www.dwww.cn/new/2006582142181827.html

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:27753次
    • 积分:427
    • 等级:
    • 排名:千里之外
    • 原创:11篇
    • 转载:11篇
    • 译文:0篇
    • 评论:1条
    文章分类
    程序设计
    网页设计