2017-08-03 78 views
0

最終,我試圖使用Azure VM(Windows Server 2016 Datacenter)中的任務計劃程序定期運行SSIS包。從我的開發機器(Windows 10)上的命令行,我可以運行...從命令行運行SSIS包時出錯

dtexec.exe /Project "pathToMy.ispac" /Package "pathToMy.dtsx" 

...並且按預期工作。然而,當我嘗試從Azure的VM我碰到下面的錯誤做同樣的:

Microsoft (R) SQL Server Execute Package Utility Version 11.0.6020.0 for 32-bit Copyright (C) Microsoft Corporation. All rights reserved.

Started: 2:17:46 PM Could not load package "MyPackage.dtsx" because of error 0x80131500. Description: The package failed to load due to error 0xC0011008 "Error loading from XML. No further detailed error information can be specified for this problem because no Events object was passed where detailed error information can be stored.". This occurs when CPackage::LoadFromXML fails. Source: MyPackage Started: 2:17:46 PM Finished: 2:17:47 PM Elapsed: 0.547 seconds

在兩臺機器上,我有相同版本的SQL Server 2016開發者(W/SSIS)和Visual Studio 2015年安裝。另外,我可以在Visual Studio中的VM上運行該包。這只是從dtexec.exe,我有問題。

我試過這裏的每個解決方案,從其他職位得到類似的錯誤,沒有幫助。有任何想法嗎?

感謝, 伊恩

+1

dtexec也是同一版本嗎?你可以確認你正在使用的保護級別 - 不保存,用密碼加密,用用戶密鑰加密 –

+0

@ Nick.McDermaid - 你釘了它!顯然,全局路徑指向VM上的舊版本(v11),我的開發機器上的版本爲v13。通過提供v13文件的完整路徑,我能夠實現它。謝謝!如果你想重複這個建議作爲答覆而不是評論,我很樂意將它標記爲正確的答案。 –

+0

如果您可以將您所做的事情(包括路徑等作爲答案)記錄爲答案並自行接受,最好的做法是什麼? –

回答

0

感謝@ Nick.McDermaid,回答這個謎已經找到。通過在開發機器和虛擬機上運行dtexec.exe(不帶參數),我可以看到VM版本是v11,開發版本是v13,這就解釋了爲什麼我得到錯誤,爲什麼一個人工作了,沒有。

然後,我在VM上爲文件資源管理器搜索了dtexec.exe副本,發現了幾個。顯然,環境路徑被設置爲查找舊版本。我可能可以找到導致這個問題的變量並改變它。然而,出於對打破別人想要快速解決方案的擔憂,我選擇使用正確版本的完整路徑執行。對於V13,該結束了......

"C:\Program Files\Microsoft SQL Server\130\DTS\Binn\dtexec.exe"

所以,我的計劃任務我爲自己的「啓動程序」動作以下屬性。

Program/Script: "C:\Program Files\Microsoft SQL Server\130\DTS\Binn\dtexec.exe"

Add Arguments: /Project "bin/Development/myProject.ispac" /Package "myPackage.dtsx"

Start in: c:{path to my .dtsx file}

+0

感謝您爲此問題的其他人記錄此問題。我可以添加任何人在這方面陷入困境:請注意,原始日誌消息包含「版本11.0.6020」 - 檢查您的版本!我當然同意使用完全合格的路徑,而不是試圖弄清楚它是如何到達這個默認路徑的(它可能是你巨大的PATH環境變量中的第一個有效路徑)。如果你有這個能力,你應該接受你自己的答案 –