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

3
以下代码在我的本地开发机上可以正常工作。但是当我将其部署到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];

请在目标服务器上安装此组件 - http://www.microsoft.com/en-us/download/details.aspx?id=13255 - ramiramilu
2个回答

3
如果您正在使用Azure VM,则只需从Microsoft网站安装OLE DB驱动程序即可。
但是,如果您正在使用Web Role,则无法安装Excel OLE驱动程序。
可以使用第三方组件(如EPPlus)来查询您的Excel文档。

谢谢Cam!!!EPPLUS非常好用!!! - dotnet-practitioner
如果我们不想使用epplus,是否有其他替代方案? - Tushar Narang

2
我认为这是因为在Azure虚拟机上缺少OleDb驱动程序,但本地开发机器上存在。
如果您使用的是Windows Azure虚拟机,您可以通过RDP在Azure机器上找到Microsoft.ACE.OLEDB.12.0驱动程序的安装,然后复制并安装它,问题就应该解决了。
如果您使用的是Windows Azure云服务,则需要通过启动/任务过程找到一种安装/注册此驱动程序(我猜是COM)的方法,并确保该驱动程序支持x64。
如果您使用的是Windows Azure网站,则可能会出现问题,因为我认为无论您使用哪种网站计划(免费,共享至标准),都无法安装/注册附加组件。
希望这能帮到你。

嗨,肖恩,我正在使用 Windows Azure 网站(完整订阅)。有没有办法安装所需的驱动程序? - dotnet-practitioner
我认为你无法这样做。也许你需要改用云服务。 - Shaun Xu
谢谢Shaun!感谢您的反馈。 - dotnet-practitioner

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接