【问题标题】:SQL Server 2016 SSIS packages failing when deployed using VS2015 SQL Server Data Tools v14使用 VS2015 SQL Server Data Tools v14 部署时 SQL Server 2016 SSIS 包失败
【发布时间】:2017-09-28 21:23:36
【问题描述】:

Visual Studio 2015 更新 3 14.0.25341.01

SQL Server 数据工具 14.0.61707.300

SQL Server 2016 13.0.4435.0

我最近在 VS2015 中收到一条消息,指出 SQL Server Data Tools 的更新可用。我决定下载并安装它,现在我部署到 SQL 2016 的包不再工作。

在安装更新之前,我不知道我的 SQL Server Data Tools 版本是什么,但我知道在我的 SSIS 项目中,我现在看到了 SQL 2017 的 TargetServerVersion 选项(以前只能转到 SQL 2016) .

我确认我的项目(这是我用于所有 SSIS 包的项目,自我们部署 SQL 2016 以来一直使用该项目)仍设置为 TargetServerVersion SQL 2016。该项目设置为项目部署模式,我一直在部署通过打开一个包,然后单击 File -> Save Copy of filename.dtsx As...,然后部署到目标 SQL。除了我升级 SQL Server Data Tools 之外,我们的环境没有任何变化。

这是我尝试运行包时收到的错误:

Executed as user: DOMAIN\ProxySvc. 
Microsoft (R) SQL Server Execute Package Utility
Version 13.0.1601.5 for 64-bit
Copyright (C) 2016 Microsoft. All rights reserved.
Started:  3:32:33 PM
Error: 2017-09-28 15:32:33.37
Code: 0xC0010018
Source: Package_Name
Description: Error loading value "<DTS:ConnectionManagers xmlns:DTS="www.microsoft.com/SqlServer/Dts"><DTS:ConnectionManager DTS:refId="Package.ConnectionManagers[SERVER A]"  DTS:CreationName="OLEDB" DTS:DTSID="{E5D397C2-477A-4E04-B930-613DDE14A054}" DTS:ObjectName="SERVER A"><DTS:ObjectData>" from node "DTS:ConnectionManagers".  
End Error
Could not load package "\Maintenance Plans\Package_Name" because of error 0xC0010014.  
Description: One or more error occurred. There should be more specific errors preceding this one that explains the details of the errors. This message is used as a return value from functions that encounter errors.
Source:
Started:  3:32:33 PM  Finished: 3:32:33 PM  Elapsed:  0.109 seconds.
The package could not be loaded.
The step failed.

但是,如果我使用本地安装的 SQL 2016 Dev Edition 中的 DtUtil 部署这些包,它们将起作用。例如:

"C:\Program Files (x86)\Microsoft SQL Server\130\DTS\Binn\dtutil" /FILE "C:\filename.dtsx" /DestServer SERVERNAME/INSTANCE /Encrypt SQL;"Maintenance Plans\Package_Name";2;PKG_PA$$

还有其他人对此有疑问吗?我不可能是唯一一个以这种方式部署包的人在部署到 VS2015 和 SQL Server Data Tools 时突然停止工作。

我还为this issue 打开了一个连接。

编辑:我尝试了 Visual Studio 2017 和 SQL Server Data Tools 的预览版。我得到同样的问题。包部署正常,但包不会运行。

编辑2:如果我创建一个空包,它会成功运行(允许什么都不做)。如果我创建一个只有一个 OLEDB 连接的空包,它会失败并显示上面的消息。它也会失败并显示相同的消息,其中包含一个空包和一个 ADO.NET 连接。

编辑 3: 我部署了两个包。一个使用 SSDT(无法在服务器上运行并出现上述错误),另一个使用 DTUTIL 可以在服务器上正常执行。除了它们被复制到服务器的方式之外,这些包完全相同。然后我使用 DTUTIL 将包复制回我的机器并进行比较。除了 DTS:LastModifiedProductVersion 版本差异之外,唯一的其他变化是 EncryptionMethod 算法。使用 SSDT 部署的那个说:

<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc"/>

以及使用 DTUTIL 部署的那个:

<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>

显然 Salt、IV 和 CipherValues 不同,但我想知道 SSDT 在部署时应用的加密是否会导致问题。

【问题讨论】:

  • 将 SSDT 更新到最新版本。这是一个独立的免费产品。 The latest version for VS 2015 is 17.2
  • 我已经这样做了。请查看我的版本号和您发布的链接中的版本号。他们匹配。
  • 我喜欢 SSDT 版本号。在 VS 2017 上,SSIS 工具版本是 .... 一个空字符串,但至少它可以工作。
  • 错误代码为0xC0010014。谷歌搜索至少有一个答案提到running on the 32 vs 64-bit runtime。您不能混合使用不同位数的 OLEDB 和运行时。
  • 是的。我已经尝试了使用 Google 时出现的所有解决方案,这就是我在这里发帖的原因。

标签: sql-server visual-studio-2015 ssis sql-server-2016 sql-server-data-tools


【解决方案1】:

我也有同样的问题。为我解决的问题是:http://microsoft-ssis.blogspot.com/2016/12/ devenv.exe.config 文件中缺少程序集引用。如果您通过命令行或使用 ISDeploymentWizard 进行部署,那可能是您的问题。

【讨论】:

  • 这对我不起作用。我在 assemblyBinding 部分下向 devenv.exe.config 添加了以下内容: - 重新部署后,我仍然收到原始问题的错误。添加该程序集是否有助于您部署到 SQL 2016?博客似乎专注于 vNext。
  • 此外,使用“将 filename.dtsx 的副本另存为...”时,我没有收到错误消息。它似乎部署得很好,这个包根本不会在服务器上运行。我认为这个修复根本不适用于我的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-25
  • 2012-05-14
  • 2015-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多