我有3个带有脚本任务的SSIS包,它们都做了非常类似的事情 - 查询SQL Server数据库,遍历结果,然后为每一行调用SOAP Web服务。 这些包在本地运行良好,并且在开发和QA服务器上运行良好。
在生产服务器上,1运行正常,2运行不祥的“无法加载执行脚本”错误。这些是Server 2008 SP2上的SQL 2008 R2环境。无论运行它们的用户是谁,都会发生错误。
到目前为止,我已尝试过以下内容:
我无法在生产服务器上重新编译脚本,因为开发堆栈不存在,而且它是生产服务器。 我也不能按照建议here在此服务器上安装或更新BIDS。
似乎某种程度上可能需要根据某些人找到的内容重新编译目标环境中的脚本,但我没有这个选项。
答案 0 :(得分:6)
Microsoft对SSIS2008R2和SSIS2012之间的ScriptTasks进行了重大更改。值得庆幸的是,修复非常简单。只需替换此行:
? 1 [System.AddIn.AddIn(" ScriptMain",Version =" 1.0",Publisher ="",Description ="") ] 有了这个:
? 1 [Microsoft.SqlServer.Dts.Tasks.ScriptTask.SSISScriptTaskEntryPointAttribute] 一切都应该像你期望的那样适合你。
答案 1 :(得分:4)
因此,遗憾的是重建脚本任务的答案。看来这些东西可能会被破坏。我确实没有改变任何一行代码,只是重新创建了任务并从破碎的版本中复制了代码。
答案 2 :(得分:1)
也可能是版本不匹配。如果SSIS项目设置为目标SQL Server 2012,但部署到SQL 2016实例,则会发生此错误。更改项目属性中的目标版本并重新部署。
答案 3 :(得分:0)
我有类似的问题,但在我的情况下,目标机器在GAC中缺少使用Microsoft Webservices3进行一些SOAP Web服务调用的dll。从Microsoft下载安装并安装在目标计算机上后,问题已解决。
答案 4 :(得分:0)
在Visual Studio 2019上,我不得不重建整个程序包,而不仅仅是脚本任务。我是通过将所有程序包任务,变量和参数复制并粘贴到新任务中来完成此操作的。