excel - 仅 Azure 上出现错误 - 'Microsoft.ACE.OleDb.12.0' 提供程序未在本地计算机上注册

标签 excel azure oledb

我正在 Azure 环境中构建的 Web 应用程序中处理 MS Excel 文件。当我尝试访问开发结构上的 Excel 文件时,我从未遇到以下错误。 但是,当我部署到云中的 Azure 后,我收到此错误消息。

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

我的印象是,Azure 的开发结构是您在云中所期望的环境的复制品。

我在这里做错了什么吗? Azure 中不存在 ACE.OleDb 提供程序吗?

最佳答案

Azure VM 上未安装 ACE.OLEDb 提供程序。

开发结构不会仅仅通过其设计就给您带来错误(在我看来,这在这方面存在缺陷)。由于 Fabric 在本地计算机上作为 .NET 程序集运行,因此它具有并利用对本地 GAC 的访问权限。因此,即使 Azure 镜像 GAC 中不存在这些库,它也可以访问已安装的任何内容。因此,就使用 Dev Fabric 而言,您实际上并没有做任何错误,只是当前状态 (SDK 1.2) 的 DevFab 无法帮助您处理云中的程序集依赖性(和其他细节)。

至于程序集本身,我对该提供商、DAC 或 Jet 驱动程序一无所知。但是,假设它们仅通过 DLL 引用工作,您应该能够在 Azure 中实现这一点,您只需在引用中明确说明即可。

1.) 确保您已在 DLL 上选择“复制本地”

2.) 进行一些测试(可能从本地计算机中删除该组件)以确保代码正在访问应用程序 bin 路径中的 DLL,而不是 GAC。标准 DLL 搜索算法应该能保证这一点,但最好还是确定一下。

简而言之,如果您可以在不安装该组件的情况下在本地进行此工作,仅使用本地 DLL,则可以在 Azure 中进行复制。否则,可以说,您将受到云的摆布。

关于excel - 仅 Azure 上出现错误 - 'Microsoft.ACE.OleDb.12.0' 提供程序未在本地计算机上注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3938052/

相关文章:

c# - Oledb 和 DATETIME 的问题

excel - PowerShell + Excel - $workbook.save() 挂断了我的电话

Python - 如何在替换字符串后保存保存文件

azure - Dot.Net Core 中的 Azure blob 容器中的软删除 blob 文件

azure - 微软Azure : user id does not exist

c# - 使用二进制列作为比较标准

sql-server - 是否可以在 OLE DB 连接管理器下的 SSIS 包内使用多个数据源?

excel - 维护 Excel 中的日期格式

VBA 代码适用于宏,但不适用于按钮

Azure Web应用程序在创建后添加deploymentLocalGitUrl