1

IIS 5 を実行している古い Windows 2000 サーバーを使用しています。このサーバーに多数の Web サイトをインストールしていますが、特定の顧客で興味深いエラーが発生しています。彼は 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% 強しか使用していないことです。また、HDD にはまだ空き容量があります。

私が見つけた最善の提案は、.NET 1.1 SP1 を更新することです。私が知る限り、最新の .NET 1.1.4322 を使用しているようです。

これを解決するための提案は大歓迎です!

4

1 に答える 1

1

この質問は長い間答えられず、おそらく先に進んでいることがわかりますが、今日この問題が発生し、解決しました. これが何が起こったのかです...

エラーメッセージはあなたのものと同じで、行番号はredimあなたの例のように使用して配列のスペースを再割り当てするコードを指していましたが、それはプログラムが最終的にメモリ不足になった場所を指しているだけでした-余分な実際の原因ではありませんメモリ使用。

幸いなことに、最近、いくつかの古代の DB コードに別の実験的な変更を加えたことを思い出しました。

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

最後の行をコメントアウトして、それがどのような影響を与えるかを確認しました. 効果がメモリ不足であることが判明しました。重要なのは、私のコードが配列のサイズを変更している行で、RecordSet の RecordCount プロパティも取得していたことです。この問題に関する別の議論があります。これが誰かに役立つことを願っています。

于 2014-12-17T16:45:22.987 に答える