首页 > 精选文章 > ASP技术 > 正文

asp 中的 “80020009” 错误

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

 IIS6 可以做以下调整。

先在服务里关闭iis admin service服务
找到windowssystem32inesrv下的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
%>

  • 上一篇:扫盲贴:做黄色网站到底犯了什么罪?
  • 下一篇:58同城分类姚劲波:分类信息是web2.0精华
  • 了解这些字:中的意思 的的意思 “的意思 ”的意思 错的意思 误的意思