SSIS作业提示所请求的 OLE DB 访问接口 Microsoft.ACE.OLEDB.12.0 尚未注册

没有跨不过的坎,也没有解决不了的问题,那些曾经没有把我们打死的困难,最终都会让我们变得更加强大

最近在使用ETL获取Excel数据时,在本地运行没有任何问题,部署到服务器后,使用作业运行时便一直提示以下错误

 

百度中几乎所有的博文资料都说安装相应的驱动程序,但是我安装之后依然解决不了问题,各种版本的都装了,2016,2010,2007,真是头大

有些博文说将应用程序池中的“启用32位应用程序”设置为true,我将应用程序池中所有的应用都设置为了true,依然解决不了问题

最后将作业中配置处的“32位运行时”勾选了,才得以把问题解决,好家伙,竟然隐藏得这么深,配置如下

在作业——步骤——配置——高级——32位运行时(勾选)

 

总结一下出现该问题大致要处理的几个步骤:

1、首先,你肯定要安装相应的驱动程序,2007版本32位的(下面是百度网盘的链接,永久有效),下载后双击安装即可

链接:https://pan.baidu.com/s/1rR1LUCgG2j7IHfvn6hj1nA
提取码:y3op

安装好后如果在你的注册表中含有Microsoft Access Driver (*.mdb, *.accdb),则代表安装成功

注册表查看路径:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBCINST.INI

 

2、项目部署之前,将调试选项中的按64位程序运行设置为false

 

如果未设置该位置,会提示以下错误,这在本地就不会运行通过,所以该处的设置也很关键

[Excel 源 [2]] 错误: SSIS 错误代码 DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER。对连接管理器“Excel 连接管理器”的 AcquireConnection 方法调用失败,错误代码为 0xC0209303。可能在此之前已经发出错误消息,提供了有关 AcquireConnection 方法调用失败原因的详细信息。

[SSIS.Pipeline] 错误: Excel 源 未能通过验证,返回的错误代码为 0xC020801C。

 

3、配置作业的步骤属性(在前面已提到)

该步骤是我解决标题中的问题的关键所在

 

4、设置应用程序池的32位应用程序为true

这一步不知道是不是必须,如果进行了上述操作还是没有解决问题,可以再做这个设置

路径:控制面板——管理工具——Internet 信息服务(IIS)管理器——应用程序池——高级设置——启用32位应用程序(true)

 

以上是我针对此问题的处理过程,希望能帮助到大家

欢迎大家评论交流转发,如有不对之处,欢迎大家指正

 

posted @ 2020-11-17 10:14  冬日暖羊  阅读(2339)  评论(0编辑  收藏  举报