我正在 Azure 环境中构建的 Web 应用程序中使用 MS Excel 文件。当我尝试访问开发结构上的 Excel 文件时,我从未遇到以下错误。
但是,当我部署到云中的 Azure 后,我收到此错误消息。
“Microsoft.ACE.OleDb.12.0”提供程序未在本地计算机上注册。
我的印象是,Azure 的开发结构是您在云中所期望的环境的复制品。
我在这里做错了什么吗?
Azure 中不存在 ACE.OleDb 提供程序吗?
Azure VM 上未安装 ACE.OLEDb 提供程序。
Development Fabric 不会仅仅通过其设计就给您带来错误(在我看来,这在这方面存在缺陷)。由于 Fabric 在本地计算机上作为 .NET 程序集运行,因此它具有并利用对本地 GAC 的访问权限。因此,即使 Azure 映像 GAC 中不存在这些库,它也可以访问已安装的任何内容。因此,在使用 Dev Fabric 方面,您实际上并没有做任何错误,只是当前状态 (SDK 1.2) 的 DevFab 无法帮助您处理云中的程序集依赖性(和其他细节)。
至于组件本身,我对该提供商、DAC 或 Jet 驱动程序一无所知。但是,假设它们仅通过 DLL 引用工作,您应该能够在 Azure 中实现这一点,您只需在引用中明确说明即可。
1.) 确保您已在 DLL 上选择“复制本地”
2.) 进行一些测试(可能从本地计算机中删除该组件)以确保代码正在访问应用程序 bin 路径中的 DLL,而不是 GAC。标准 DLL 搜索算法应该能保证这一点,但最好还是确定一下。
简而言之,如果您可以在不安装该组件的情况下在本地工作,仅使用本地 DLL,则可以在 Azure 中进行复制。否则,可以说,您将受到云的摆布。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)