我有一个用 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 服务运行可能会尝试使用不同的驱动程序/失败吗?