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

时间:2014-06-13 10:20:22

标签: c# database asp-classic hosting

我一直在开发一个使用数据库的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" />

为什么会发生这种情况的任何想法?提前致谢

2 个答案:

答案 0 :(得分:3)

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

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

这是Microsoft网站上的一个文档,解释了如何执行此操作 Save an Access 2010 database in an earlier file format

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

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

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

答案 1 :(得分:0)

尝试以下步骤

  1. 右键单击应用程序并选择属性。
  2. 转到“构建”部分。
  3. 选择平台目标为任何CPU
  4. 保存应用程序。
  5. 构建并运行。