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

以下代码在我的本地开发机器上正常工作。 但是,当我在Azure远程Web站点上部署它时,出现以下错误消息。 我已经看过SO答案和谷歌search结果,但它仍然不清楚我必须在我的本地机器上安装什么,以便当我将代码推送到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]; 

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

但是,如果您使用Webangular色Excel OLE驱动程序没有安装在它们上面。

使用第三方组件(如EPPlus)来查询您的Excel文档。

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

如果您使用Windows Azure虚拟机,您可以findMicrosoft.ACE.OLEDB.12.0驱动程序的安装,通过RDP在您的azure色的机器上复制和安装,然后它应该被解决。

如果您使用Windows Azure Cloud Service,则可能需要通过启动/任务进程find一种方法来安装/注册此驱动程序(COM,我猜)。 而且您还需要确保驱动程序支持x64。

如果您使用的是Windows Azure网站,那可能是一个问题,因为我不认为您可以安装/注册额外的组件,无论您正在使用哪个网站计划(免费,共享到标准)。

希望这可以帮助。