我使用OpenXML在SSIS包中使用C#生成Excel文件。SSIS C#OpenXML生成Excel文件失敗
我這樣做是因爲我們沒有在服務器上安裝Excel,所以這應該工作,無需安裝Excel。
本地工作,但轉移到PROD服務器時失敗。它是失敗的腳本任務,我收到此錯誤:
Executed as user: MI\SQLAgentAccount. Microsoft (R) SQL Server Execute Package Utility Version 11.0.5058.0 for 64-bit Copyright (C) Microsoft Corporation. All rights reserved. Started: 10:46:49 AM Error: 2015-10-15 10:46:50.49 Code: 0x00000001 Source: Save To Excel Without Excel Description: Exception has been thrown by the target of an invocation. End Error DTExec: The package execution returned DTSER_FAILURE (1). Started: 10:46:49 AM Finished: 10:46:50 AM Elapsed: 0.827 seconds. The package execution failed. The step failed.
我包括在參考文獻中的OpenXML和WindowBase對象,並與「使用」的語句添加。
using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Spreadsheet;
這些是否需要向GAC註冊?或者有沒有辦法將它們包含在項目中(在SSIS中的腳本任務內)?在SSIS中的C#腳本任務中有「複製到本地」的設置,但不確定在SSIS內部會有什麼/如何工作。
任何幫助,將不勝感激。
什麼是在prod服務器上運行SSIS包的用戶?你使用代理來運行它嗎?代理的用戶必須被授予對Excel文件所在的文件夾的讀取權限(如果需要,可以寫入) –
它使用sa用戶,但是我們有其他軟件包可以創建,編輯,刪除和更新這些文件夾上的文件。 – Brad