2011-12-20 128 views
1

我知道这个问题已被问过,但我似乎无法从其他帖子看到这可能是我不知道asp我刚刚上传图像和更改数据库并通过FTP上传重,但现在我所遇到的一个错误提供程序错误'80004005'未指定的错误

提供程序错误 '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中

帮助非常感谢

杰克

+0

使用ADO.NET提供程序 - Oledb或Odbc代替ADODB。 – adatapost 2011-12-20 12:39:03

+0

看看上面的代码是你试图访问的esposti1.mdb或esposti.mdb? – 2011-12-20 12:39:52

+0

esposti.mdb,我不知道esposti1.mdb是什么,AVD - 我将如何实现?我不知道ASP – 2011-12-20 12:41:57

回答

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

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

检查您是否没有意外更改路径,因此它现在不正确(一个Response.Write(Server.MapPath("db\esposti.mdb")))应该打印完整路径。此外,值得回收IIS应用程序池,有时连接仍然在IIS中打开并且数据库变得无响应,这可能是您没有正确关闭连接的迹象。

0

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

0

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