0

服务器是专用的,我可以远程访问。

我们有带有 Access 数据库的自定义 ASP CMS,我们使用自定义错误页面进行“mod rewrite”。它工作得很好。

该网站有 6 种不同的语言版本,每种语言都有自己的域,它们都连接到同一个数据库。

问题是,我每隔几个小时就会收到此错误:

Microsoft JET 数据库引擎错误“80004005”
未指定错误

收到此错误后,我必须重新启动 IIS 或将“错误页面设置”编辑为详细错误,然后再次将其设置为自定义。之后它工作正常。

我安装了进程监视器并跟踪 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 回答