简体   繁体   English

使用 VS2015 SQL Server Data Tools v14 部署时 SQL Server 2016 SSIS 包失败

[英]SQL Server 2016 SSIS packages failing when deployed using VS2015 SQL Server Data Tools v14

Visual Studio 2015 Update 3 14.0.25341.01 Visual Studio 2015 更新 3 14.0.25341.01

SQL Server Data Tools 14.0.61707.300 SQL Server 数据工具 14.0.61707.300

SQL Server 2016 13.0.4435.0 SQL Server 2016 13.0.4435.0

I recently had a message in VS2015 that a update for SQL Server Data Tools was available.我最近在 VS2015 中收到一条消息,指出 SQL Server Data Tools 的更新可用。 I decided to download and install it and now packages I deploy to SQL 2016 no longer work.我决定下载并安装它,现在我部署到 SQL 2016 的包不再工作。

I do not know what my version of SQL Server Data Tools was before I installed the update, but I do know that inside my SSIS Project, I now see the TargetServerVersion option of SQL 2017 (used to only go to SQL 2016).在安装更新之前,我不知道我的 SQL Server Data Tools 版本是什么,但我知道在我的 SSIS 项目中,我现在看到 SQL 2017 的 TargetServerVersion 选项(过去只转到 SQL 2016)。

I confirmed my project (which is the project I use for all my SSIS packages and have since we deployed SQL 2016) is still set to TargetServerVersion SQL 2016. The project is set to Project Deployment Mode, and I've always deployed by opening a package, and clicking File -> Save Copy of filename.dtsx As... and then deploying to target SQL.我确认我的项目(这是我用于所有 SSIS 包的项目,自我们部署 SQL 2016 以来一直使用)仍然设置为 TargetServerVersion SQL 2016。该项目设置为项目部署模式,我总是通过打开一个打包,然后单击 File -> Save Copy of filename.dtsx As... 然后部署到目标 SQL。 Nothing has changed in our environment outside of my upgrade of SQL Server Data Tools.除了升级 SQL Server Data Tools 之外,我们的环境没有任何变化。

Here's the error I receive when I try to run the package:这是我尝试运行包时收到的错误:

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.

The packages will however work if I deploy them using DtUtil from the SQL 2016 Dev Edition I have installed locally.但是,如果我使用本地安装的 SQL 2016 Dev Edition 中的 DtUtil 部署它们,则这些软件包将起作用。 For example:例如:

"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$$

Has anyone else had issue with this?有没有其他人有这个问题? I can't be the only person deploying package this way that suddenly had the packages stop working when deployed in VS2015 and SQL Server Data Tools.在 VS2015 和 SQL Server Data Tools 中部署包时,我不可能是唯一一个以这种方式部署包的人。

I've also opened a Connect for this issue .我还为此问题打开了一个连接。

Edit: I tried Visual Studio 2017 with the preview edition of SQL Server Data Tools for it.编辑:我尝试使用带有 SQL Server Data Tools 预览版的 Visual Studio 2017。 I get the same issue.我得到同样的问题。 Package deploys fine, but the package will not run.包部署正常,但包不会运行。

Edit 2: If I create an empty package, it runs successfully (granted doing nothing).编辑 2:如果我创建一个空包,它会成功运行(允许什么都不做)。 If I create an empty package with nothing but a single OLEDB connection, it fails with the message above.如果我创建一个只有一个 OLEDB 连接的空包,它会失败并显示上面的消息。 It also fails with the same message with an empty package and only a single ADO.NET connection.它也会失败并显示相同的消息,其中包含一个空包和一个 ADO.NET 连接。

Edit 3: I deployed two packages.编辑 3:我部署了两个包。 One using SSDT (that fails to run on the server with error above) and another with DTUTIL that executes on the server fine.一个使用 SSDT(无法在服务器上运行并出现上述错误),另一个使用 DTUTIL 在服务器上正常执行。 The packages are the exact same except for how they were copied to the server.除了它们被复制到服务器的方式之外,这些包完全相同。 I then used DTUTIL to copy the package back to my machine and compared them.然后我使用 DTUTIL 将包复制回我的机器并进行比较。 Outside of the DTS:LastModifiedProductVersion version differences, the only other change is the EncryptionMethod Algorithm.除了 DTS:LastModifiedProductVersion 版本差异之外,唯一的其他更改是 EncryptionMethod 算法。 The one deployed using SSDT says:使用 SSDT 部署的那个说:

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

And the one deployed using DTUTIL:使用 DTUTIL 部署的那个:

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

Obviously the Salt, IV, and CipherValues are different but I wonder if the encryption being applied by SSDT when deploying is causing the issue.显然 Salt、IV 和 CipherValues 是不同的,但我想知道部署时 SSDT 应用的加密是否会导致问题。

I had the same exact issue.我有同样的问题。 What solved it for me was this: http://microsoft-ssis.blogspot.com/2016/12/ There's a missing assembly reference in the devenv.exe.config file.为我解决的问题是: http ://microsoft-ssis.blogspot.com/2016/12/ devenv.exe.config 文件中缺少程序集引用。 If you deploy via command line or using the ISDeploymentWizard, that's probably your issue.如果您通过命令行或使用 ISDeploymentWizard 进行部署,那可能是您的问题。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM