内存不足错误 - 经典ASP& VPASP购物车

时间:2013-06-27 20:57:56

标签: windows asp-classic vbscript iis-5 windows-server-2000

我有一台运行IIS 5的旧版Windows 2000服务器。我在这台服务器上安装了许多网站,一位特定客户遇到了一个有趣的错误。他正在使用VP-ASP购物车。

Microsoft VBScript runtime error '800a0007'

Out of memory

/cart/admin/admin$db.asp, line 558 

该行附近的相关代码:

'********************************************************************************
'all routines dealing with actual cart are here
'CartaddItem ()
'CartInit
'********************************************************************************
sub CartInit
   dim ArrCart
   dim MaxCartItems, CartAttributes
   MaxCartItems=GetConfig("xMaxCartItems")
   CartAttributes=cMaxCartAttributes
   if MaxCartItems="" then exit sub
   redim ArrCart(CartAttributes,MaxCartItems)
   session("CartArray") = ArrCart
   session("CartCount") = 0
end sub

问题是,当他开始得到这个错误时,机器只使用了超过50%的内存。硬盘上还有空间可用。

我能找到的最佳建议是我们应该更新.NET 1.1 SP1。我似乎在.NET 1.1.4322上,据我所知,这是最新的1.1。

任何有关解决此问题的建议都将非常感谢!

1 个答案:

答案 0 :(得分:1)

我可以看到这个问题很长一段时间没有得到答复,你可能已经开始了,但我今天遇到了这个问题而且我解决了这个问题。这里发生了什么......

虽然错误消息与您的相同,并且行号指向使用redim像您的示例重新分配数组空间的代码,但这只是指向程序最终耗尽内存的地方 - 不是额外内存使用的实际原因。

幸运的是,我记得我最近在一些古老的数据库代码中进行了另一次实验性修改:

        Set dbProviderCon = Server.CreateObject("ADODB.Connection")
        dbProviderCon.CursorLocation = adUseClient

我已经注释掉了最后一行,看看它会产生什么影响。事实证明,效果已耗尽内存。重要的是,在我的代码调整数组大小的行上,它也获得了RecordSet的RecordCount属性。 Here's another discussion about the issue。我希望这有助于某人。