Ms access 启用32位应用程序时的ODBC错误驱动程序错误“80004005”

Ms access 启用32位应用程序时的ODBC错误驱动程序错误“80004005”,ms-access,asp-classic,iis-10,Ms Access,Asp Classic,Iis 10,我正试图跟进我的学校项目,我完全按照他们的建议设置了IIS,包括允许32位应用程序。然而,尽管从零开始在两台不同的计算机上进行了尝试,它仍然不起作用。我收到错误消息: 用于ODBC驱动程序的Microsoft OLE DB提供程序错误“80004005” [Microsoft][ODBC驱动程序管理器]未找到数据源名称,也未指定默认驱动程序 /乐高积木商店/Program.asp,第17行 我的代码如下: <% dim con, rs, sql Set co

我正试图跟进我的学校项目,我完全按照他们的建议设置了IIS,包括允许32位应用程序。然而,尽管从零开始在两台不同的计算机上进行了尝试,它仍然不起作用。我收到错误消息:

用于ODBC驱动程序的Microsoft OLE DB提供程序错误“80004005”

[Microsoft][ODBC驱动程序管理器]未找到数据源名称,也未指定默认驱动程序

/乐高积木商店/Program.asp,第17行

我的代码如下:

<%
        dim con, rs, sql
        Set con = Server.CreateObject("ADODB.Connection")
        Set rs = Server.CreateObject("ADODB.Recordset")

        con.open("DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ=" & Server.MapPath("Lego.accdb"))

        sql = "SELECT * FROM Table1"

        rs.Open sql, con
        %>

我不知道为什么它不起作用,我不能继续我的项目,直到它被修复。这些文件是从我的计算机托管的,而不是使用单独的服务器。我检查了现有的解决方案,但它们适用于不同版本的IIS,我不知道它们有多不同。

如果您使用的是IIS 7或更高版本,您还需要配置应用程序池以允许32位使用:

右键单击应用程序池并选择“高级设置…” 或者在选择后从“操作”窗格中选择相同的选项 应用程序池 将“启用32位应用程序”更改为True,然后单击“确定”
如果您使用的是IIS 7或更高版本,还需要将应用程序池配置为允许32位使用:

右键单击应用程序池并选择“高级设置…” 或者在选择后从“操作”窗格中选择相同的选项 应用程序池 将“启用32位应用程序”更改为True,然后单击“确定”
与MS Access程序相关联的数据库有两种:JET.mdb文件和ACE.accdb文件。较新的ACE格式是在2007年推出的,早在经典ASP被视为遗产之后很久,因此任何涉及经典ASP和Access的教程都会假定您使用的是JET数据库。JET的ADODB驱动程序仅为32位,随支持IIS的Windows版本一起提供。不包括ACE的ADODB驱动程序,您必须自己下载并安装。它有一个64位版本,据我所知,它只有一个64位版本

我认为实现您想要实现的最简单的方法是打开Access并以旧的.mdb格式保存数据库版本

OLEDB连接字符串通常优先于ODBC连接字符串。在您的情况下,连接字符串应为:

con.open("Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("Lego.mdb"))

www.connectionstrings.com是一个很好的资源,也是一个很容易记住的url。

MS Access程序有两种数据库,JET.mdb文件和ACE.accdb文件。较新的ACE格式是在2007年推出的,早在经典ASP被视为遗产之后很久,因此任何涉及经典ASP和Access的教程都会假定您使用的是JET数据库。JET的ADODB驱动程序仅为32位,随支持IIS的Windows版本一起提供。不包括ACE的ADODB驱动程序,您必须自己下载并安装。它有一个64位版本,据我所知,它只有一个64位版本

我认为实现您想要实现的最简单的方法是打开Access并以旧的.mdb格式保存数据库版本

OLEDB连接字符串通常优先于ODBC连接字符串。在您的情况下,连接字符串应为:

con.open("Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("Lego.mdb"))

www.connectionstrings.com是一个很好的资源,也是一个很容易记住的url。

这条8004消息确实表明有点大小不匹配。我会考虑安装X64驱动程序来访问同一台机器上的Web服务器。虽然启用了x32应用程序,但进程内代码仍可能以x64的形式运行。另一个解决方案是安装并运行x32 IIS。由于您有一个工作设置,我将安装access x64驱动程序。该8004消息确实表明有点大小不匹配。我会考虑安装X64驱动程序来访问同一台机器上的Web服务器。虽然启用了x32应用程序,但进程内代码仍可能以x64的形式运行。另一个解决方案是安装并运行x32 IIS。由于您有一个工作设置,我将安装access x64驱动程序。