我們的SSIS包含一個結構化的控件包和許多從控件包調用的子包(大約30個)。子包被調用執行包任務。每個子包有一個執行包任務。每個執行包任務使用文件連接管理器來指定子包dtsx文件的路徑。每個子包有一個文件連接管理器。每個文件連接管理器都有一個爲ConnectionString屬性定義的表達式。此表達式如下所示:SSIS間歇性變量錯誤:系統找不到指定的文件
@[Template::FolderPackages]+"MyPackage.dtsx"
每個包的文件名是不同的。變量(FolderPackages)在SSIS包配置文件中指定。
,它是在運行時所產生的誤差是
Error 0x80070002 while loading package file "MyPackage.dtsx"
該系統找不到指定的文件。」失敗的包是從運行不同的運行,有時甚至沒有包失敗的。這是當運行在完全相同的環境/數據等
我在這個錯誤期間運行FileMon,發現錯誤發生時,SSIS試圖從錯誤的地方讀取dtsx文件,即從system32。我檢查這是相同的如果@ [Template :: FolderPackages]變量是空的,但是因爲使用了相同的變量,會發生什麼情況每個孩子的包裝和一些爲一些工作,但有時不爲別人工作,我沒有這個事實的exporanation。
是否有任何明顯的跡象,或者有時間向微軟提出支持電話?
加載下一個軟件包之前可以推遲嗎?所有的軟件包都在同一個目錄下嗎?你把包的絕對路徑,以幫助確保它不會去System32? – 2009-11-22 22:49:35
我們都試過了。阻止它的唯一可靠方法是在包中有一個與Prod系統相同的絕對路徑,這樣當配置加載失敗時,它將回退到Prod位置。 雖然這顯然會吸引開發環境。僅供參考,微軟正在挖掘堆棧痕跡和所有血腥細節。看起來像一個真正的bug。 – 2009-11-24 20:10:42