2013-03-01 54 views
2

我有3個SSIS包,其腳本任務都做非常類似的事情 - 查詢SQL Server數據庫,循環遍歷結果,然後調用SOAP web服務爲每一行。 這些包在本地運行良好,並且在開發和QA服務器上運行良好。SSIS腳本任務在服務器上失敗,出現錯誤「無法加載腳本執行」

在生產服務器上,1運行正常,2失敗,出現「無法加載腳本執行」錯誤。這些是Server 2008 SP2上的SQL 2008 R2環境。無論運行它們的用戶如何,都會發生錯誤。

到目前爲止,我已經試過如下:

  • 運行包在我的開發環境與數據庫的連接指向生產(運行正常)
  • 集Run64BitRuntime在項目設置爲false。沒有區別。
  • 刪除軟件包並重新部署它
  • 給出對建議的here的/ Windows/Temp的顯式寫入權限。這是在用代理用戶運行時發生的,Sowe嘗試了這種修復方法。但是在使用我的管理員帳戶運行時出現同樣的錯誤。

我無法在生產服務器上重新編譯腳本,因爲開發堆棧不在那裏,而且它是生產服務器。 我也不能像建議的here那樣在此服務器上安裝或更新BIDS。

似乎可能需要基於某些人找到的東西來重新編譯目標環境上的腳本,但我沒有這個選項。

+0

作爲代理作業或直接使用執行包實用程序運行並不重要。同樣的錯誤。該屬性設置爲32位,但。 – cdonner 2013-03-01 20:18:40

+0

我很欣賞你的努力,但腳本不能編譯/加載,所以這不是運行時問題。它與安全或環境有關。通過運行的一個包可以很好地訪問Web服務。 – cdonner 2013-03-01 20:32:06

+0

我不知道補丁級別。該配置全部由數據庫驅動,並且對於所有軟件包都是相同的。另外,我只是在其中一個失敗的軟件包中重新創建腳本任務,將所有代碼複製,重新部署,然後瞧,它就可以工作。打敗我發生了什麼事。 – cdonner 2013-03-01 21:14:13

回答

2

所以,答案不幸的是重建腳本任務。看起來這些東西可能會損壞。我從字面上看沒有更改任何一行代碼,只是重新創建了任務並從破損版本中複製了代碼。

+0

重新創建任務會更改基礎XML元數據。它需要重新編譯。 – D3vtr0n 2013-03-01 22:21:00

+0

不會在腳本項目中運行「Build」也會更改XML元數據?這並沒有達到預期的效果。我想它並沒有改變medatadata相當「足夠」。重新編譯(C#)腳本項目並重新部署軟件包並沒有幫助。 – cdonner 2013-03-01 22:36:07

3

Microsoft在SSIS2008R2和SSIS2012之間對ScriptTasks進行了重大更改。謝天謝地,修復非常簡單。只需更換此行:

? [System.AddIn.AddIn( 「ScriptMain」,版本= 「1.0」 時,Publisher = 「」,描述= 「」)] 與此:

? [Microsoft.SqlServer.Dts.Tasks.ScriptTask.SSISScriptTaskEntryPointAttribute] 和一切應該爲你工作的預期。

+0

爲我修好了。非常感謝@Ankit – arcee123 2016-10-16 19:07:13

+0

我的榮幸!如果它有幫助,請標記爲答案。 – Ankit 2017-10-13 10:38:16

0

也可能是版本不匹配。如果SSIS項目設置爲定位SQL Server 2012,但部署到SQL 2016實例,則會發生此錯誤。更改項目屬性中的目標版本並重新部署。

+0

你在哪裏更改SSIS項目的目標服務器版本? – 2017-11-21 21:42:25

+0

右鍵單擊該項目,然後單擊屬性,然後單擊配置屬性 – 2017-11-22 06:39:03

0

我有類似的問題,但在我的情況下,目標機器在使用Microsoft Webservices3的某些SOAP Web服務調用中缺少GAC中的dll。一旦我從Microsoft下載安裝並安裝在目標機器上,問題就解決了。