【问题标题】:Asp Access db: Microsoft JET Database Engine error '80004005' Unspecified errorAsp Access db:Microsoft JET 数据库引擎错误“80004005”未指定错误
【发布时间】:2021-02-11 01:32:28
【问题描述】:

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

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

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

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

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

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

我安装了进程监视器并跟踪 w3wp.exe 进程。

当发生错误时,我在HKLM\SOFTWARE\Wow6432Node\Microsoft\Jet\4.0\Engines 上被拒绝访问。

谢谢。

【问题讨论】:

    标签: asp-classic jet


    【解决方案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
      

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多