0

サーバーは専用で、リモート アクセスが可能です。

Access データベースを備えたカスタム ASP CMS があり、"mod の書き換え" にカスタム エラー ページを使用しています。それはうまくいきます。

この Web サイトは 6 つの異なる言語で利用でき、各言語には独自のドメインがあり、すべて同じデータベースに接続されています。

問題は、数時間ごとにこのエラーが発生することです。

Microsoft JET データベース エンジン エラー '80004005'
不明なエラー

このエラーが発生したら、IIS を再起動するか、[エラー ページの設定] を詳細なエラーに編集してから、再度カスタムに設定する必要があります。その後、正常に動作します。

Process Monitor をインストールして、w3wp.exe プロセスを追跡しています。

エラーが発生すると、でアクセスが拒否されましたHKLM\SOFTWARE\Wow6432Node\Microsoft\Jet\4.0\Engines

ありがとうございました。

4

1 に答える 1

1

Access データベースは、大量のトラフィック用に構築されたことはありません。ほとんどの場合、大量のリクエストが原因でクラッシュするだけです。

実際のデータベースに切り替えたほうがよいでしょう。最近では、SQL Server Express、MySQL など、多くのものが無料で提供されています。

それまでの間、コードを調べて、次のことを確認してください。

  1. Recordset を使用した直後に常に閉じてから、Nothing に設定します。

    Do Until oRS.EOF
        'do your stuff...
        oRS.MoveNext
    Loop
    
    'Always close after use
    oRS.Close
    Set oRS = Nothing
    
  2. Connection オブジェクトについても同じです。終了したら閉じて破棄します。

  3. 多くの場合、ページはリダイレクトを使用します - リダイレクトする前に必ず閉じて破棄してください。

    If oRS.EOF Then
        'Always close after use
        oRS.Close
        Set oRS = Nothing
    
        Response.Redirect("Error.asp?v=nouser")
    End If
    
    'do your stuff...
    
    'Always close after use
    oRS.Close
    Set oRS = Nothing
    
于 2012-07-02T06:24:12.473 に答える