在特定环境中执行SSIS包时出错:连接管理器 - 找不到指定的模块

时间:2012-02-03 16:36:11

标签: sql-server ssis

我创建了4个SSIS包,其中两个正在将文本文件加载到数据库中并且工作正常。 其他两个正在执行或多或少相同的操作,但正在加载Excel文件。

它在BIDS和UAT服务器(Windows 2003 64位)上运行良好 我知道我必须使用位于32版SQL Server文件夹中的DTExec.exe文件以32位模式运行“Excel”包,所以这不是问题。

以下是用于启动软件包的批处理文件的内容:

REM Alimentation Commissions ASSURANCE VIE
"C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTEXEC" /FILE "H:\HUB\DTSX\DWH_IN_ASV_COM_CommissionsAllianzArcalis.dtsx" /CHECKPOINTING OFF /REPORTING EW
"C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTEXEC" /FILE "H:\HUB\DTSX\DWH_IN_ASV_COM_CommissionsLaMondiale.dtsx" /CHECKPOINTING OFF /REPORTING EW
"C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTEXEC" /FILE "H:\HUB\DTSX\DWH_IN_ASV_COM_CommissionsNatixisLife.dtsx" /CHECKPOINTING OFF /REPORTING EW
"C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTEXEC" /FILE "H:\HUB\DTSX\DWH_IN_ASV_COM_CommissionsRejets.dtsx" /CHECKPOINTING OFF /REPORTING EW
REM FIN IN

问题是,在我们的PRODUCTION服务器上使用相同的DTSX文件和相同的BAT文件(手动开始执行),加载Excel文件的两个软件包在日志中失败并显示这些消息:

Info: 2012-02-03 15:52:57.23
   Code: 0x4004300A
   Source: Export du log d'import SSIS.Pipeline
   Description: Validation phase is beginning.
End Info
Error: 2012-02-03 15:52:57.23
   Code: 0x8007007E
   Source: DWH_IN_ASV_COM_CommissionsLaMondiale Connection manager "CNX_SQL_db_AssuranceVie"
   Description: The specified module could not be found.
End Error
Error: 2012-02-03 15:52:57.23
   Code: 0xC020801C
   Source: Export du log d'import Source OLE DB [1]
   Description: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER.  The AcquireConnection method call to the connection manager "CNX_SQL_db_AssuranceVie" failed with error code 0x8007007E.  There may be error messages posted before this with more information on why the AcquireConnection method call failed.
End Error
Error: 2012-02-03 15:52:57.23
   Code: 0xC0047017
   Source: Export du log d'import SSIS.Pipeline
   Description: component "Source OLE DB" (1) failed validation and returned error code 0xC020801C.
End Error

Export du log d'import是第二个任务的名称:

  • 第一项任务:从excel中提取数据,执行一些控制,在表中加载数据,生成带有拒绝的文本文件,在日志表中添加一行。
  • 第二项任务:将与当前包ID匹配的日志表的内容导出到文本文件。

有一个循环,为了能够加载多个文件,匹配名称模板。

CNX_SQL_db_AssuranceVie是两个任务使用的SQL Server连接对象的名称,连接字符串是根据外部XML文件中的数据构建的。

数据库连接对象是基本的SQL Server连接,并且其他两个包使用的连接字符串完全相同,我不明白是什么问题。
由于我无法直接访问PROD服务器,因此不容易尝试......

所以我在寻找创意!

2 个答案:

答案 0 :(得分:0)

有些事情会浮现在脑海中。首先,当我的开发/测试服务器是32位并且生产是64位时,我遇到了因为我们在machine.config中使用连接字符串。当然,还有不同的ASP.NET目录,因此有32位和64位的machine.config文件...

另外,我在生产中运行没有足够权限的东西时遇到了问题...尝试以管理员身份打开命令窗口。然后从该命令行运行您的包。

答案 1 :(得分:0)

我通过修复Microsoft Office Database Engine来解决这个问题,我知道之前已经安装过这个版本,但似乎卸载Office产品可能会破坏Excel插件。