【问题标题】:Getting Error 800a0e7a "Provider cannot be found. It may not be properly installed."出现错误 800a0e7a“找不到提供程序。它可能没有正确安装。”
【发布时间】:2014-03-10 06:37:40
【问题描述】:

所以我要回到我在大学创建的一个项目,所以我可以将它转移到 PHP。我最初是用 ASP Classic 编写的。

我在 Windows 8 上运行 Access 2013。

我目前收到以下错误

ADODB.Connection 错误“800a0e7a” 找不到提供者。它可能没有正确安装。 /PROJECT!Better/verifyuser.asp,第 11 行

这是我的连接字符串代码。

Dim vPath, pPath, Conn

vPath = ".\db\Comic.accdb"
pPath = Server.MapPath( vPath )

objConn = "PROVIDER=Microsoft.ACE.OLEDB.12.0;DATA SOURCE=" & pPath & ";"
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open objConn

您能提供的任何帮助都会很棒!

编辑:我已经在 IIS 中启用了 32 位应用程序

【问题讨论】:

标签: asp-classic


【解决方案1】:

IIS / Application Pools / YourPool / Advanced Settings 中检查站点的应用程序池:

  • 高级/启用 32 位应用程序:是的

有一些轶事证据表明你也这样做:

  • 托管管道模式:经典

【讨论】:

  • 需要启用 32 位应用程序,但可以集成流水线模式。这就是我的应用程序的运行方式,因此请求通过 ASP.NET 安全性和 HttpModules。
  • 我将不得不将这个纹身纹在我的手上。我老是忘记了!
【解决方案2】:

您应该使用机器中可用的提供程序。

  1. 转到控制面板
  2. 转到管理员工具
  3. 转到数据源 (ODBC)
  4. 点击“驱动程序”标签。
  5. 您是否看到名为“SQL Server Native Client”的东西?

请参阅随附的屏幕截图。这里我的提供者将是 SQLNCLI11.0

【讨论】:

  • 谢谢,Vinayak Prabha,你解决了我的问题!我有 Provider=SQLNCLI 但是当我查看我的驱动程序时,我发现我安装了两个版本,10.0 和 11.0。更改为 Provider=SQLNCLI11.0 解决了问题
  • 请记住,这是针对 ODBC 驱动程序的。如果您使用的是 OLE DB 驱动程序,那么您可能会遇到与上述@JamesMcCormack 帖子相关的问题。
【解决方案3】:

我遇到了同样的问题,通过在我的机器上安装 Oracle 11g 客户端解决了它..

我没有为它安装任何专有驱动程序。我正在使用 64 位的 windows7。有趣的是,当我导航到路径开始 > 设置 > 控制面板 > 管理工具 > 数据源(ODBC)> 驱动程序时。我发现里面只有 SQL server

【讨论】:

  • 您是说Oracle 11g 客户端可以连接到JET 或ACE 数据库吗?仅供参考 在 64 位窗口中有两个 ODBC 管理器,您可以在控制面板中找到 64 位版本,您可以在 C:\Windows\SysWOW64\odbcad32.exe 找到 32 位版本
  • 我猜对于 ACE 数据库来说这还不够。但是连接Oracle数据库Oracle 11g客户端就足够了。尝试连接 Oracle DB 时出现“ADODB.Connection 错误”
【解决方案4】:

一些建议

默认情况下不安装 ACE 驱动程序。它也是一个 64 位驱动程序,因此可能值得在您的应用程序池中禁用 32 位。我知道启用 32 位时 64 位驱动程序不起作用。(例如,将 IIS 连接到 Tomcat 的 ISAPI 过滤器)。

较旧的 JET 驱动程序是 32 位的。默认情况下包含它。如果您可以将数据库的副本保存为 .mdb 文件,那么使用 JET 驱动程序可能是一种解决方法

【讨论】:

    【解决方案5】:

    驱动安装了吗?如果您进入 开始 > 设置 > 控制面板 > 管理工具 并单击 数据源,然后选择 驱动程序 选项卡,您的驱动程序信息应该是在那里注册。

    如果简单地设置 DSN 连接进行测试可能会更容易。

    您当然可以定义多个连接字符串并设置一个“模式”以在不同的机器上工作。

    还有ConnectionStrings.com

    -- 编辑--

    为了更进一步,我在另一个网站上找到了this thread

    【讨论】:

      【解决方案6】:

      以下步骤解决了我的问题。

      (1) Moved the website to a Dedicated application pool.
      
      (2) Changed the Managed Pipeline Mode from integrated to Classic.
      
      (3) Set Enable 32-Bit Applications from false to true.
      

      ASP 页面现在可以正常工作了!

      【讨论】:

        【解决方案7】:

        在 Server 2003 上使用 IIS6 上的 Asp classic 维护非常旧的应用程序时遇到此异常 甲骨文 9.2.0.1。 修复方法是将 oracle 更新到 9.2.0.6。

        【讨论】:

          【解决方案8】:
          1. 在窗口管理工具下,运行 ODBC 数据源(32 位)。

          2. 在“驱动程序”选项卡下,检查您是否有 Microsoft Excel 驱动程序(*.xls、*.xlsx 等...) - 文件名为 ACEODBC.DLL

          3. 如果缺少此项,您将需要安装 Microsoft Access Database Engine 2016 Redistributable。

          你会在这里找到安装程序https://www.microsoft.com/en-us/download/details.aspx?id=54920

          1. 您的连接应该是:
          Set objConn1 = Server.CreateObject("ADODB.Connection") 
          objConn1.Provider = "Microsoft.ACE.OLEDB.12.0"   
          objConn1.ConnectionString = "Data Source=" & pPath & ";Extended Properties=""Excel 12.0 Xml;HDR=YES;IMEX=1""" 
          

          【讨论】:

            【解决方案9】:

            安装这个https://www.microsoft.com/en-us/download/details.aspx?id=13255

            无论你是64位,都安装32位版本,并在应用程序池中启用32位应用

            【讨论】:

              猜你喜欢
              • 2018-11-25
              • 2011-01-31
              • 1970-01-01
              • 2019-01-13
              • 2023-03-25
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多