C# 异常详细信息:System.InvalidOperationException:The';微软.ACE.OLEDB.12.0';提供程序未在本地计算机上注册
我一直在开发一个使用数据库的ASP网站。当我测试它时,它可以脱机工作,但当我将它上载到我的fasthosts帐户时,我在尝试运行它时遇到以下错误: 异常详细信息:System.InvalidOperationException:“Microsoft.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:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$
ConnectionStrings:ThreadString %>" ProviderName="<%$
ConnectionStrings:ThreadString.ProviderName %>" SelectCommand="SELECT * FROM [Thread]
WHERE ([rank] <= ?) ORDER BY [rank]">
web.config文件:
<add name="ThreadString" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data
Source=|DataDirectory|\Database.accdb" providerName="System.Data.OleDb" />
知道为什么会这样吗?提前感谢尝试以下步骤
构建并运行。连接到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