2013-10-02 29 views
0

我有一個用C#編寫的Windows服務,它調用一個用SSIS 2008R2編寫的SSIS包。該軟件包連接到Excel電子表格。從應用程序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服務運行可能試圖使用不同的驅動程序/失敗?

回答

2

您的服務需要針對x86架構。目前它運行在64位模式下,並沒有可用的Excel驅動程序。當它啓動應用程序時,它將拉入與服務其餘部分相同的體系結構的程序集,並且因爲它位於64位空間中,所以它會失敗。

+0

如果只有我可以upvote兩次。感覺「configury」,但顯然我不知道在哪裏。謝謝 –

相關問題