2016-03-08 144 views
1

我有3個SSIS包。第三個SSIS包中有兩個完美地工作。這是第二次的副本之一,除了改變連接字符串不斷拋出問題:無法將類型爲'System._COMObject'的COM對象轉換爲接口類型

Unable to cast COM object of type 'System.__ComObject' to interface type 'Microsoft.SqlServer.Dts.Pipeline.Wrapper.IDTSObject100'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{D4E5AF42-7999-473C-8082-6EFC676953C4}' failed due to the following error: The application called an interface that was marshalled for a different thread. (Exception from HRESULT: 0x8001010E (RPC_E_WRONG_THREAD)). 

已經這樣做自從我複製來的包了。我已經通過在線指南,並運行regsvr32 dts.dll,這表示它是成功的,但沒有任何改變。我仍然得到錯誤,爲什麼?

SSIS包似乎驗證我的容器,與其他兩個相比,這需要很長時間才能完成,然後在驗證中拋出上述錯誤消息後失敗。

回答

1

您不能複製軟件包,但需要另外更改名稱併爲此軟件包生成新的GUID(它標識COM對象)。有關更多信息,請參閱this MSDN文章。

+0

我的第二個包是第三個不同連接字符串的副本,它工作正常。我將在明天創建一個新包,並將邏輯複製過來。乾杯。我會讓你知道它是如何變成 –

+0

這並沒有解決我的問題 –

0

我希望它可以幫助別人。該解決方案爲我工作:

  1. 我註冊程序集使用gacutil.exe。我的SSIS項目目標服務器版本是SQL 2012.所以,我使用的是DTSPipelineWrap.dll版本11.0。我在管理員模式下打開"Developer Command Prompt for VS2015",然後鍵入以下命令:C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\gacutil.exe /i "C:\Program Files (x86)\Microsoft SQL Server\120\SDK\Assemblies\Microsoft.SqlServer.DTSPipelineWrap.dll"
  2. 從我的SSIS腳本任務,參考
  3. 然後 - >我刪除現有DTSPipelineWrap這是使用從位置裝配「C:\ Program Files文件(86 )\ Microsoft SQL Server \ 120 \ SDK \ Assemblies \ Microsoft.SqlServer.DTSPipelineWrap.dll「。然後在參考文件夾中,右鍵單擊 - >添加參考 - >瀏覽從位置查找組件"C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.SqlServer.DTSPipelineWrap\v4.0_11.0.0.0__89845dcd8080cc91\Microsoft.SQLServer.DTSPipelineWrap.dll"
  4. 單擊確定。重建代碼並執行包。它爲我工作。
相關問題