Windows Azure 远程站点“Microsoft.ACE.OLEDB.12.0”提供程序未在本地计算机上注册 [重复]

Posted

技术标签:

【中文标题】Windows Azure 远程站点“Microsoft.ACE.OLEDB.12.0”提供程序未在本地计算机上注册 [重复]【英文标题】:Windows Azure remote site The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine [duplicate] 【发布时间】:2014-01-16 04:21:51 【问题描述】:

以下代码在我的本地开发机器上正常工作。但是当我在 Azure 远程网站 上部署它时,我收到以下错误消息。我查看了 SO 答案和谷歌搜索结果,但我仍然不清楚我必须在本地计算机上安装什么,以便当我将代码推送到 Azure 时,错误就会消失。

错误信息:

“Microsoft.ACE.OLEDB.12.0”提供程序未在本地计算机上注册。

我的代码..

string filename = Server.MapPath("/") + "MyExcelDataFile.xlsx";
string connectionString = String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=0;Extended Properties=\"Excel 8.0;HDR=YES\";", filename);
string query = String.Format("SELECT * from [0$]", "myRange1");
OleDbDataAdapter dataAdapter = new OleDbDataAdapter(query, connectionString);
DataSet dataSet = new DataSet();
dataAdapter.Fill(dataSet);
DataTable YourTable = dataSet.Tables[0];

【问题讨论】:

在目标服务器上安装这个组件 - microsoft.com/en-us/download/details.aspx?id=13255 【参考方案1】:

如果您使用的是 Azure VM,只需从 Microsoft 网站安装 OLE DB 驱动程序。

但如果您使用的是 Web 角色 Excel OLE 驱动程序未安装在它们上。

改用EPPlus 等第3 方组件来查询您的Excel 文档。

【讨论】:

谢谢凸轮!!!! EPPLUS 效果很好!!!! 是否有替代方案。如果我们不想使用 epplus【参考方案2】:

我认为这是因为 azure 的虚拟机上不存在 OleDb 驱动程序,但在您的本地开发机器上却存在。

如果你使用的是Windows Azure虚拟机,你可以找到Microsoft.ACE.OLEDB.12.0驱动的安装,通过RDP复制安装到你的Azure机器上,应该可以解决。

如果您使用的是 Windows Azure 云服务,那么您可能需要找到一种方法来通过启动/任务过程安装/注册此驱动程序(我猜是 COM)。并且您还需要确保驱动程序支持 x64。

如果您使用的是 Windows Azure 网站,这可能是个问题,因为无论您使用哪种网站计划(免费、共享到标准),我认为您都无法安装/注册其他组件。

希望这会有所帮助。

【讨论】:

嗨,Shaun,我正在使用 Windows Azure 网站(完全订阅)。有什么办法可以安装所需的驱动程序? 我不认为你可以。也许您必须更改才能使用云服务。 谢谢肖恩!!感谢您的反馈。

以上是关于Windows Azure 远程站点“Microsoft.ACE.OLEDB.12.0”提供程序未在本地计算机上注册 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Windows Azure 和 Amazon AWS 之间的站点到站点 ***

Windows Azure 虚拟网络点到站点:此连接需要此平台上不可用的安全功能

windows azure怎么直接用远程连接

Azure 点到站点 - AAD 身份验证

如何在 Windows Azure 中使用远程桌面调试辅助角色?

Azure 点到站点客户端能否看到默认的 Azure DNS?