【问题标题】:SSIS - The script task ... use version 15.0 script that is not supported in this release of Integrated serviceSSIS - 脚本任务...使用此版本的集成服务不支持的 15.0 版脚本
【发布时间】:2018-05-08 11:06:41
【问题描述】:

您好,我正在寻求指导。

我使用 Visual Studio 2015 为目标版本 2016 开发了一个包含几个脚本任务和脚本组件的 SSIS 项目。

我有两个环境服务器 A服务器 B 都安装了 SSIS 2016 SP1。

我已经完成了一个将包部署到服务器 A 的项目,并测试了所有执行完美的包。 但是,当我将 SSIS_DB 中的包从服务器 A 部署到服务器 B 时,我的执行报告中出现了这些错误。

“脚本组件,clsid { }”的组件元数据无法升级到该组件的较新版本。 PerformUpgrade 方法失败

2

从 XML 加载脚本任务时出现异常:System.Exception:脚本任务“”使用此版本的集成服务不支持的 15.0 版脚本。要运行包,请使用脚本任务创建一个新的 VSTA 脚本。在大多数情况下,当您在 %SQL_PRODUCT_SHORT_NAME% Integration Services 中打开 SQL Server Integration Services 包时,脚本会自动转换为使用受支持的版本。 在 Microsoft.SqlServer.Dts.Tasks.ScriptTask.ScriptTask.LoadFromXML(XmlElement elemProj,IDTSInfoEvents 事件)

有趣的是,如果我将包直接从 Visual Studio 部署到服务器 B,则包可以正确执行而没有问题。 所以服务器A和服务器B之间似乎存在不一致。

这方面的一个小背景是,在构建两台服务器时,服务器 A 具有 Microsoft SQL Server 2016 (SP1-GDR) 和服务器 Microsoft SQL Server 2016 (RTM) 但在服务器 B 更新后,它们现在都拥有 Microsoft SQL Server 2016 (SP1-GDR)。 我不确定升级是如何完成的,我怀疑服务器上的 SSIS 不同,但我似乎无法证明这一点。 当我检查版本时,它们似乎都返回相同或相似的元数据

【问题讨论】:

标签: sql-server sql-server-2016 ssis-2016 ssis


【解决方案1】:

这是由 SSMS 引起的。我不知道幕后发生了什么,但在部署期间,我使用的是 SSMS 2017,它似乎正在升级我的包中的脚本组件。我改用 SSMS 2016 这个问题就消失了

【讨论】:

    【解决方案2】:

    正确答案在这里:https://andyleonard.blog/2017/09/ssis-version-15-0-script-error/

    在我的情况下,问题是项目级别“TargetServerLevel”的设置设置为“SQL Server 2017”。正确的值必须是“SQL Server 2016”。一旦值改变并且项目重新部署错误消失。 我相信我团队中的一位开发人员在添加项目时使用了 VS 2017。即使服务器版本不正确,所有其他任务和组件(脚本除外)都很好,并且仅当我不得不使用脚本任务和组件时才会出现问题。 要解决问题打开项目参数 => 配置属性 => TargetServerVersion 选择“SQL Server 2016”,然后部署到服务器。

    【讨论】:

    • 我遇到了同样的问题,将TargetServerVersion 更改为 SQL Server 2016 解决了该问题:SQL Server 代理作业(调用 dtsx 包)成功运行。跨度>
    【解决方案3】:

    只是总结一些事情,因为遇到这个问题是有一些原因的:

    1. 您正在为另一个 SQL Server 部署具有目标版本定义的包

    1. 您正在部署一个包,其中包含一个脚本任务,其 SSMS 版本与 SQL Server 版本不同

    例如,如果您的包不包含脚本任务,则任何版本的 SSMS 都可以通过 SSISDB 目录将该包部署到任何版本的 SQL Server。不知道为什么会这样。似乎您可以部署和执行包,同时确保 SQL 版本支持包目标版本,但如果您有一个 ScriptTask 内部,您需要非常小心并确保 SSMS 的集成服务版本相同SQL Server 版本。

    我将向 Microsoft 提出一个问题,以确定为什么脚本任务有这种处理方式。可能是因为脚本任务依赖于框架。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-10
      • 1970-01-01
      • 1970-01-01
      • 2016-11-08
      • 1970-01-01
      • 2012-06-15
      相关资源
      最近更新 更多