来自应用程序的SSIS Excel连接在部署的服务中失败

时间:2013-10-02 19:49:28

标签: c# excel ssis

我有一个用C#编写的Windows服务,它调用用SSIS 2008R2编写的SSIS包。该包连接到Excel电子表格。它执行如下:

Application app = new Application();
Package pkg = app.LoadPackage(ConfigurationManager.AppSettings["SsisPkgLoc"].ToString(), null);
DTSExecResult pkgResults = pkg.Execute();

当我安装此服务并且程序包运行时,程序包将失败并显示

SSIS Error Code DTS_E_OLEDB_EXCEL_NOT_SUPPORTED: The Excel Connection Manager is not supported in the 64-bit version of SSIS, as no OLE DB provider is available.

但是,如果我从WPF表单调用相同的代码,它将按预期执行。我知道从SSIS到Excel的64位与32位连接存在问题。令我困惑的是,从两种方法调用相同的代码。

任何想法为什么运行Windows服务可能会尝试使用不同的驱动程序/失败?

1 个答案:

答案 0 :(得分:2)

您的服务需要以x86架构为目标。目前它以64位模式运行,并且没有可用的Excel驱动程序。当它启动应用程序时,它会将组件拉入与其他服务相同的体系结构中,并且因为它位于64位空间中,所以它会失败。