提供程序错误'80004005'未指定错误

时间:2011-12-20 12:28:40

标签: asp.net

我知道之前已经问过这个问题,但我似乎无法从其他帖子中看到这可能是什么我不知道asp我刚刚上传图像并更改数据库并通过FTP重新上传但现在我遇到了错误

  

提供商错误'80004005'

     

未指定的错误

     

/Includes/DB/DatabaseConnect.asp,第8行

 <% 
    Dim espostiDB 
    Set espostiDB = Server.CreateObject("ADODB.Connection")
    'espostiDB.ConnectionString = "DSN=esposti.dsn"
    'espostiDB.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("db\esposti1.mdb")
    espostiDB.ConnectionString = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("db\esposti.mdb") ')e:\inetpub\wwwroot\esposti\esposti.mdb" 
    'espostiDB.ConnectionString = "DSN=esposti.dsn"
    espostiDB.Open
%>
  

第8行是espostiDB.open

     

数据库是Access 2000

帮助非常感谢

杰克

4 个答案:

答案 0 :(得分:1)

使用上面的代码,您可以使用:

<% 
    Set espostiDB = Server.CreateObject("ADODB.Connection")

    connStr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("~\db\esposti.mdb")

    espostiDB.Open connStr
%>

信息here还将为您提供有关如何使用Server.MapPath的指示(如果您的mdb文件不在您网站的根目录中)。

答案 1 :(得分:1)

80004005错误可能是很多事情,要检查的一件事是数据库当前不处于打开状态并因此被锁定,所以每次打开连接时都需要确保关闭它。检查此问题的一种简单方法是检查在与数据库相同的文件夹中是否存在Access锁定文件(.ldb)文件。

检查您是否没有无意中更改路径,因此现在不正确(Response.Write(Server.MapPath("db\esposti.mdb")))应该打印完整路径。

此外,值得回收IIS应用程序池,有时连接在IIS中保持打开状态,并且数据库变得无法响应,这可能表示您没有正确关闭连接。

答案 2 :(得分:1)

这就是我解决这个问题的方法,完全相同的错误。去控制面板 - 管理工具 - 互联网信息服务。在右键单击View Application Pools并为“Classic NET AppPool”和“DefaultAppPool”设置v4.0网络框架版本。如果设置为v2.0,则会显示上述错误。

答案 3 :(得分:0)

此冲突的原因似乎是在64位上运行的32位应用程序。请确保在C:\ Windows \ SysWOW64 \ odbcad32.exe中描述了ODBC连接