2011-07-11 44 views
2

SSIS帶有許多解決數據採集和分解問題的任務,但它缺少的一項任務是通過HTTP下載文件的'HTTP任務'。如何解決SSIS「File/Process not in path」警告?

爲了解決這個問題,我安裝了Wget,並使用Execute Package任務從SSIS運行它。

Wget位於我的系統路徑中,因此我可以在任何目錄中運行該程序時從命令提示符鍵入'wget'。但SSIS抱怨說,「文件/程序‘的wget’不是路徑」:

SSIS warns that 'File/Process "wget" is not in path'.

我已經設置了加工性能RerquireFullFileName爲false可以導致錯誤停止這種抱怨:

RequireFullFileName is False so that the package executes successfully.

除了在開始時發出警告,軟件包按預期運行。它調用wget並下載我告訴它的文件。但是,如何阻止SSIS抱怨wget不在路上?

編輯:設置執行進程任務的DelayValidation屬性爲真,如由Siva建議,不能解決問題;它只是阻止SSIS在設計時抱怨。由於延遲驗證,在運行時,我在調試輸出窗口中看到:

SSIS package "Extract.dtsx" starting. 
Warning: 0xC0029154 at Download Locations Dump, Execute Process Task: File/Process "wget" is not in path. 
SSIS package "Extract.dtsx" finished: Success. 

回答

4

發生此警告是因爲打包在設計時嘗試驗證可執行文件的位置。您可以推遲此驗證通過更改屬性DelayValidationExecute Process task運行時間。

步驟一步的過程:

  1. 在SSIS包,我的地方配置爲使用工具Wget的一個Execute Process Task。請參閱屏幕截圖#。

  2. 屏幕截圖#與問題中顯示的屏幕截圖類似的警告消息。

  3. 右鍵單擊執行進程任務和選定的屬性,如截圖#所示。

  4. 在屬性窗口中,將DelayValidation屬性值從False更改爲True。

  5. 屏幕截圖#顯示警告不再出現。

編輯:

乾脆取消此警告,即使在運行時,你可以做如下:

  1. 創建一個變量來存儲的完整路徑的wget.exe。用wget.exe的完整路徑填充變量。在您的方案中,價值可能會有所不同。請參閱屏幕截圖#。

  2. 雙擊執行進程任務。在任務的表達式部分,點擊省略號按鈕。請參閱屏幕截圖#。

  3. 屬性表達式編輯器,則可執行屬性值設置爲新創建的變量@[USer::WgetPath]。請參閱屏幕截圖#。

希望有所幫助。

截圖#1:

1

截圖#2:

2

截圖#3:

3

截圖#4:

4

截圖#5:

5

截圖#6:

6

截圖#7:

7

截圖#8:

8

+0

這將停止從設計師所報告的錯誤,但錯誤仍然在運行時報告。在調試輸出中,我看到消息「」「警告:0xC0029154在下載位置轉儲,執行進程任務:文件/進程」wget「不在路徑中。」「」。 –

+0

謝謝,這工作。但是,我不再使用Execute Process任務作爲解決方法;相反,我正在使用腳本任務,因爲我打算最終開發自己的HTTP任務組件。 –