C# 异常详细信息:System.InvalidOperationException:The';微软.ACE.OLEDB.12.0';提供程序未在本地计算机上注册

C# 异常详细信息:System.InvalidOperationException:The';微软.ACE.OLEDB.12.0';提供程序未在本地计算机上注册,c#,database,asp-classic,hosting,C#,Database,Asp Classic,Hosting,我一直在开发一个使用数据库的ASP网站。当我测试它时,它可以脱机工作,但当我将它上载到我的fasthosts帐户时,我在尝试运行它时遇到以下错误: 异常详细信息:System.InvalidOperationException:“Microsoft.ACE.OLEDB.12.0”提供程序未在本地计算机上注册 连接字符串如下所示: <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ C

我一直在开发一个使用数据库的ASP网站。当我测试它时,它可以脱机工作,但当我将它上载到我的fasthosts帐户时,我在尝试运行它时遇到以下错误:

异常详细信息:System.InvalidOperationException:“Microsoft.ACE.OLEDB.12.0”提供程序未在本地计算机上注册

连接字符串如下所示:

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ 
ConnectionStrings:ThreadString %>" ProviderName="<%$     
ConnectionStrings:ThreadString.ProviderName %>" SelectCommand="SELECT * FROM [Thread] 
WHERE ([rank] &lt;= ?) ORDER BY [rank]">

web.config文件:

<add name="ThreadString" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data  
Source=|DataDirectory|\Database.accdb"  providerName="System.Data.OleDb" />


知道为什么会这样吗?提前感谢

尝试以下步骤

  • 右键单击应用程序并选择属性
  • 转到构建部分
  • 选择任何CPU的平台目标
  • 保存应用程序

  • 构建并运行。

    连接到ACCDB文件(Access 2007格式)需要ACE.OLEDB.12.0驱动程序。 此驱动程序需要安装在ISP机器上。
    (这可能就是他们问你不同计划的原因)

    但是,您可以将文件格式更改为Access 2003,该文件使用Microsoft.Jet.OLEDB.4.0,并且不需要在ISP机器上安装此驱动程序

    这是Microsoft网站上的一个文档,解释了如何执行此操作。

    但还有另一个问题。此驱动程序仅为32位,因此您的ISP应允许32位驱动程序在站点的托管进程中运行(如果他们使用64位操作系统)。如何做到这一点取决于您的ISP工具和界面,以及它们能让您个性化其服务的程度

    通常在本地IIS服务器上执行以下步骤

    • 转到IIS管理器
    • 右键单击DefaultAppPool(或您的应用程序池)
    • 选择高级设置
    • 将“启用32位应用程序”设置为True

    您是否将IIS进程设置为允许32位程序?抱歉。。我对这个很陌生。如何做到这一点?项目平台已经针对您正在使用excel或Access???Access的任何CPU数据库。托管公司让我相信我需要单独的数据库托管服务。这是真的吗?这对于sql数据库是必要的,但对于access数据库我不这么认为。并尝试使用Microsoft.Jet.OLEDB.4.0提供程序;“Microsoft.ACE.OLEDB.4.0”提供程序未在本地计算机上注册。非常详细,谢谢。我更改了驱动程序,但现在我收到一个新的错误异常详细信息:System.Data.OleDb.OleDbException:无法识别的数据库格式“[file location]”。我在access 2010中创建了数据库。您是否按照上面链接中的说明将ACCDB文件的格式更改为MDB?。还要重命名该文件,使其具有MDB扩展名(Access 2003),我在该错误上花费了8个小时。非常感谢你!我没有足够的分数去投票,但我会接受答案。再次感谢!