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

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

问题描述:

我有一个较旧的Windows 2000服务器运行IIS 5.我有一些网站安装在此服务器上,一个特定的客户正在运行一个有趣的错误。他正在使用VP-ASP购物车。内存不足错误 - 经典ASP和VPASP购物车

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%。 HDD上还有可用空间。

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

任何建议,解决这个将不胜感激!

+1

错误更多地与资源没有被释放有关 - 比如使用后丢弃对象,而不是像硬盘空间这样的实际物理资源。 – Darren

+1

检查http://classicasp.aspfaq.com/general/i-have-plenty-of-ram-why-do-i-get-an-out-of-memory-error.html和http:// stackoverflow。 com/questions/4171522/maximum-array-of-strings-visualbasic-wsh – SearchAndResQ

+2

.net与经典的asp和vbscript绝对无关 – ulluoink

我可以看到这个问题很久没有回答了,你可能已经开始了,但今天我有这个问题,我解决了它。这是发生了什么......

虽然错误信息与你的相同,行号指向代码重新分配使用redim像你的例子的阵列的空间,这只是指向程序最终运行的地方内存不足 - 不是额外内存使用的真正原因。

还好我记得我曾在一些古老的DB代码最近做了另一个实验变化:

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

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