仅Azure的错误 - “Microsoft.ACE.OleDb.12.0'提供程序未注册在本地计算机上 [英] Error on only Azure - 'Microsoft.ACE.OleDb.12.0' provider is not registered on the local machine

查看:331
本文介绍了仅Azure的错误 - “Microsoft.ACE.OleDb.12.0'提供程序未注册在本地计算机上的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我用MS Excel文件的工作在一座建于Azure的环境下我的Web应用程序。当我试图访问我的开发面料Excel文件我从来没有碰到下面的错误。
但是,一旦我在云中部署天青,我得到这个错误信息。

I am working with MS Excel files in my web application built in Azure environment. I never run into following error when I am trying to access the excel file on my development fabric. But once I deploy to Azure in cloud, I get this error message.

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

The 'Microsoft.ACE.OleDb.12.0' provider is not registered on the local machine.

我是在IM pression,发展面料Azure是你希望在云计算环境中的副本。

I was under impression that development fabric for Azure is replica of the environment you would expect in Cloud.

有什么问题,我在这里做什么?
是ACE.OleDb提供商没有present在Azure中?

Is there something wrong I am doing here? Is ACE.OleDb provider not present in Azure?

推荐答案

该ACE.OLEDb提供者未安装在虚拟机天青

The ACE.OLEDb provider isn't installed on the Azure VMs.

开发面料不会给你这里的错误简单地通过它的设计(这在我看来,在这方面有缺陷)。由于织物运行的.NET程序集在本地机器上,它拥有并利用访问本地GAC。其结果是,当这些库不Azure的图像GAC在present它可以访问你甚至安装的东西。所以,你是不是真的做错什么用的开发面料,它只是在DevFab其当前状态(SDK 1.2)不能帮助你应对云组件的依赖(和其他细节)的条款。

The Development Fabric won't give you an error here simply by its design (which in my opinion, is flawed in this area). Since the Fabric runs as a .NET assembly on your local machine, it has and leverages access to your local GAC. As a result, it can access anything you have installed even when those libraries are not present in the Azure image GAC. So, you aren't really doing anything wrong in terms of using the Dev Fabric, its just that the DevFab in its current state (SDK 1.2) cannot help you deal with assembly dependency (and other details) in the cloud.

至于大会本身,我不知道的提供者,DAC,或Jet驱动任何东西。但是,假设他们通过DLL引用根本工作,你应该能够做到这一点在Azure中,你只需要在你的参考明确。

As for the assembly itself, I don't know anything about that provider, the DAC, or Jet Drivers. However, assuming they work simply by DLL reference you should be able to make this happen in Azure, you'll just have to be explicit in your reference.

1)确保您选择复制本地关于DLL

1.) Make sure you've selected "Copy Local" on the DLL

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

2.) Do some testing (maybe remove the component from your local machine) to ensure the code is accessing the DLL within the bin path for the application, as opposed to the GAC. The standard DLL searching algorithm should guarantee this, but always better to be sure.

总之,如果你能完成这项工作的本地没有安装该组件,只用本地的dll,您可以在Azure中复制。否则,你在云的摆布,可以这么说。

In short, if you can make this work local without that component installed, using just local DLLs, you can replicate in Azure. Otherwise, you're at the mercy of the cloud, so to speak.

这篇关于仅Azure的错误 - “Microsoft.ACE.OleDb.12.0'提供程序未注册在本地计算机上的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆