2011-07-27 52 views
0

我試圖從SSIS消費一些WCF服務。我從開發機器上工作得很好。但是,當另一個開發人員嘗試這樣做時,他們會遇到問題。SSIS以「指定」結尾的輸入變量名稱 - 爲什麼?

如果其他開發者複製了我的.DTSX文件,那麼它就起作用了。但是,如果他們自己創建它,則無法連接(從WCF端監控它)。

我們注意到SSIS在兩臺機器上的行爲有很大差異,我懷疑這是問題的原因。兩臺SSIS機器都從該服務下載相同的WSDL數據。但是,我的機器上的Web服務任務(功能控制任務)與其他開發人員的機器(非功能機器)有不同的輸入。例如,如果我的方法,我試圖打電話是DoStuff(int data1, decimal data2, string msg),我將有5個輸入:data1 (int)data1Specified (bool)data2 (decimal)data2Specified (bool)msg (string)而其他機器缺乏data1Specifieddata2Specified投入。當處理其他輸入時,看起來這個變量總是由我的機器爲所有數據類型創建的,除了字符串(未經詳盡測試,但已拋出~8個數據類型),但其他開發人員的機器從不創建這些變量xxxSpecified

還有一件需要注意的事情:如果其他開發人員從我的機器導入.DTSX並直接運行它,它就會起作用。如果他點擊「下載WSDL」按鈕,即使它下載了完全相同的WSDL,他在指定要調用的服務/方法後也會得到一組不同的輸入。顯然,他的SSIS開發環境正在做出與我不同的決定,我們無法弄清楚爲什麼或如何使自己的行爲更像我的行爲。我們甚至不知道爲什麼這些變量顯然是必需的(WSDL中的NOWHERE中存在「指定」)。

爲什麼SSIS會生成這些xxxSpecified輸入,以及爲什麼在一個環境中而不是另一個?

  • 澄清: 「GoodDevBox」 手動創建項目,從頭開始,和它的工作原理(即具有xxxSpecified輸入)。 「BadDevBox」從頭開始手動創建項目,並且它不起作用(即缺少xxxSpecified輸入)。這個問題與分享項目/解決方案無關。事實上,如果「BadDevBox」不重新處理WSDL,那麼共享它們是實現它的唯一方法。

回答

0

我們最終只卸載和有問題的機器重新安裝的SQL Server的一個,它們之間比較,運行Windows更新和問題走了。仍然不知道問題是什麼,我也不知道我的問題的真實答案:爲什麼在名稱末尾生成具有「指定」的變量。

0

我已經體會到,如果您有配置文件,或者您已經構建/編譯解決方案,它會在配置文件中存儲憑據和設置,包括網絡憑證。

將解決方案從一臺機器傳遞到另一臺機器時,它將這些憑據保留在配置中,而不管用戶是否使用登錄來打開解決方案。

檢查配置文件和一個工程並沒有

+0

根據@internet工程師的說法,嘗試將PackageProtectionLevel從EncryptSensistiveWithUserKey翻轉到DontSaveSensitive http://bi-polar23.blogspot.com/2009/04/ssis-and-package-protectionlevel.html – billinkc

+0

我想你誤解了(或者我很困惑)。不工作的機器不僅不能在同一個項目中工作(在重新處理WSDL時),而且在從頭開始手動重新創建項目時也不能工作。實際上,讓機器工作的唯一方法是通過共享文件而不讓「壞」機器重新生成任何東西。由於無法從頭開始構建「糟糕」的機器,因此與共享項目/解決方案或任何事情無關。 – Jaxidian

+0

我們需要看到錯誤信息。下面是你如何得到它們: 1. http://consultingblogs.emc.com/jamiethomson/archive/2005/06/11/SSIS_3A00_-Custom-Logging-Using-Event-Handlers.aspx 2. http ://munishbansal.wordpress.com/2009/02/06/%E2%80%9Conerror%E2%80%9D-versus-%E2%80%9Contaskfailed%E2%80%9D-event-handler-in-ssis/ –