2016-09-21 28 views
0

我們有一個任務,我們需要自動將excel文件轉換爲csv,以便將其加載到SQL數據庫中。開發人員將此過程構建到SSIS包中。對於轉換,他們最初試圖讓SSIS包中的任務執行一個VBscript來轉換文件。當他們在本地機器上運行時,這個工作正常。當他們通過服務器上的VS手動運行包時,它運行正常。當他們通過集成目錄手動運行軟件包時,它運行正常。我們既作爲我們的帳戶,也作爲服務帳戶,並取得了相同的結果。但是,當我們將它作爲一項工作進行安排時,它會掛在執行VBScript的過程中。沒有錯誤,它會一直持續下去,直到你殺了這份工作。SSIS執行任務將Excel轉換爲CSV的問題

作業正在作爲在服務器上具有完全管理訪問權限的服務帳戶執行,顯式完全訪問存儲和轉換文件的共享位置(位於同一服務器上)和對SQL的完全管理訪問權限。工作所有者設置爲使用服務帳戶的sa。而且所有的工作都是從集成目錄執行,如果你獨立於作業運行它,那麼它就可以工作。當我們將使用服務帳戶的集成目錄中手動運行的手動執行報告與作業運行進行比較時,他們看起來是相同的,只是作業掛在轉換任務上,另一部分沒有。

花了一些時間試圖弄清楚這一點後,開發人員嘗試了不同的解決方案。他們將轉換腳本從使用VBScript改爲使用C#。他們從當地的機器運行軟件包,再次運行軟件包。這次他們在服務器上手動運行失敗。當我們從集成目錄中運行它時失敗了,當我們從作業中運行它時,失敗了。

我們不斷收到的錯誤是「創建CSV文件:錯誤:異常已通過調用的目標引發異常」花好幾個小時尋找到建議此錯誤後一無所獲似乎是工作。

我們也嘗試了新建成的服務器上的這些相同的解決方案,以確保我們不處理,可能已經改變(這是一個開發服務器)一個奇怪的配置設置,它仍然在那裏失敗。

在這一點上,我們對發生的事情感到迷茫。第一個解決方案奏效,但由於某種原因,永遠不會成爲一份工作。第二種解決方案除了在服務器上運行時以外都可以工作

我們正在尋找其他一些解決方案來解決這個問題。接下來的事情可能是試圖使用PowerShell來轉換文件,但不知道這是否會使我們回到同樣的問題。任何建議你們有將不勝感激

此外,我們使用SQL Server 2012開發版,VS 2012專業版,Windows Server 2012中R2

+0

這聽起來像一個問題,即在一個環境中有效的路徑在另一個環境中無效。確保您使用通用路徑指向包中任何位置引用的每個文件。 –

+0

當我們從本地機器執行它(對開發服務器執行)時,它可以正常工作。在使用VBScript的情況下,它可以在服務器上工作,除了安裝作爲一項工作。一切都設置在Dev,路徑,文件等等,並且它們在任何時候都不會改變。不知道我在跟隨,讓我知道如果我在你說的話中缺少某些東西。謝謝。 – Dustin

+0

另外,軟件包上沒有參數,在這一點上所有內容都是硬編碼的,所以在我們安排時沒有設置。 – Dustin

回答

0

這可能是因爲試圖運行時Excel中有一個錯誤的作業(使用Excel)並且沒有用戶在特定機器上登錄。這可能也會影響excel庫。該解決方案是創建以下2個文件夾:

  • C:\ WINDOWS \ Syswow64資料\ CONFIG \ systemprofile \桌面
  • C:\ WINDOWS \ system32 \設置\ systemprofile \桌面

和然後重新啓動機器。 :)

(編輯表明,需要重新啓動。感謝Dustin檢查它)

+0

剛剛嘗試過,但仍然得到相同的錯誤 – Dustin

+0

如果你沒有更好的辦法,你可以嘗試重新啓動服務器?我不記得是否需要,但我們正在談論微軟解決方案,所以... – ldobre

+1

修復它。我們通過這樣做了Dev服務器上的這個工作,但我們做了這麼多工作,我想確保這是修復。通過我們的QA服務器上的相同步驟,在每個服務器之後測試包並確認這是修復它的東西。非常感謝您的幫助,不確定我們是否會發現這種情況。 – Dustin