SSIS 问题无法解密受保护的 XML 节点
我创建了一个 SSIS 包,它从 ftp 服务器中提取文件并将其保存到我的本地驱动器,但我遇到了这个问题。
有了同样的错误消息,我只收到警告,但今天作业失败了。
信息:
以用户身份执行:cam\Package.Runner。适用于 64 位的 Microsoft (R) SQL Server 执行包实用程序版本 10.0.4000.0 版权所有 (C) Microsoft Corp 1984-2005。版权所有。开始: 10:00:00 AM 错误: 2012-02-15 10:00:00.61 代码: 0xC0016016 来源: 说明: 无法解密受保护的 XML 节点“DTS:Password”,错误为 0x8009000B“密钥在指定状态下无效.”。您可能无权访问此信息。当存在加密错误时会出现此错误。验证是否有正确的密钥可用。结束错误 错误:2012-02-15 10:00:00.62 代码:0xC0016016 来源:说明:无法解密受保护的 XML 节点“DTS:属性”,错误为 0x8009000B“密钥在指定状态下无效。”。您可能无权访问此信息。当存在加密错误时会出现此错误。验证是否有正确的密钥可用。结束错误 错误:2012-02-15 10:00:33.53 代码:0xC0029183 来源:本金余额文件 FTP 获取 FTP 任务说明:“/Concerto/Virtus_Reports/Concerto 本金余额报告*.pdf”表示的文件不存在。结束错误 DTExec:包执行返回 DTSER_FAILURE (1)。开始时间:上午 10:00:00 完成时间:上午 10:00:33 已用时间:33.088 秒。包执行失败。该步骤失败。
I created an SSIS package which is having ftp pull files from ftp server and save to my local drive but I'm getting this issue.
With same error message I was getting only warning but today the job fails.
Message:
Executed as user: cam\Package.Runner. Microsoft (R) SQL Server Execute Package Utility Version 10.0.4000.0 for 64-bit Copyright (C) Microsoft Corp 1984-2005. All rights reserved. Started: 10:00:00 AM Error: 2012-02-15 10:00:00.61 Code: 0xC0016016 Source: Description: Failed to decrypt protected XML node "DTS:Password" with error 0x8009000B "Key not valid for use in specified state.". You may not be authorized to access this information. This error occurs when there is a cryptographic error. Verify that the correct key is available. End Error Error: 2012-02-15 10:00:00.62 Code: 0xC0016016 Source: Description: Failed to decrypt protected XML node "DTS:Property" with error 0x8009000B "Key not valid for use in specified state.". You may not be authorized to access this information. This error occurs when there is a cryptographic error. Verify that the correct key is available. End Error Error: 2012-02-15 10:00:33.53 Code: 0xC0029183 Source: Principal Balance File FTP Get FTP Task Description: File represented by "/Concerto/Virtus_Reports/Concerto Principal Balance Report*.pdf" does not exist. End Error DTExec: The package execution returned DTSER_FAILURE (1). Started: 10:00:00 AM Finished: 10:00:33 AM Elapsed: 33.088 seconds. The package execution failed. The step failed.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(10)
您可以通过设置“保护级别”属性来解决此问题
。使用此属性,包将不受密码保护,并且另一台服务器可以使用其他凭据访问和执行任何作业。
You can fix this issue by setting the Protection Level property
With this property, the package will not be password protected, and another server can access and execute any job with other credentials.
将包导入 SQL Server 时选择保护级别:
1-
不要保存敏感数据。
或者
2- 依靠服务器存储和角色进行访问控制。
SSIS 项目 包属性的屏幕截图:
While importing the package to SQL Server choose Protection Level:
Either
1- Don't save sensitive data.
Or
2- Rely on Server Storage and roles for access control.
Screenshot from SSIS Project Package Properties:
请尝试使用“EncryptSensitiveWithPassword”选项保存您的包。
第 1 步:右键单击您的 FTP 连接管理器,转到其属性(最底部,而不是“编辑”按钮),
并输入密码。
步骤 2:使用 EncryptSensitiveWithPassword 保存您的包。
步骤 3:现在在 SQL 作业代理中编辑命令,如下所示
/FILE "C:\SSIS pkg.dtsx 的完整路径" /DECRYPT 密码
Please try save your package with the option "EncryptSensitiveWithPassword".
Step-1: Right click on your FTP connection manager, go to its Properties (the very bottom, not the Edit button),
and type in the password.
Step-2: Save your package with EncryptSensitiveWithPassword.
Step-3: Now edit the command ling in SQL job agent as below
/FILE "C:\Fullpath of SSIS pkg.dtsx" /DECRYPT password
在构建和部署包之前,请确保您已更改解决方案的属性,如下所示:
Before Building and deploying the package, please be sure you've changed the property of the solution like this :
我收到了与 FTP 连接相同的错误消息。我认为这是由于我在与创建包时使用的凭据不同的凭据下运行 BIDS 时打开包而引起的。
作为一种笨拙的解决方法,我删除并重新创建了 FTP 连接。后来效果很好。
I got the same error message for FTP Connections. I think it was caused by me opening the Package while running BIDS under different credentials to those I created it with.
As a clunky workaround I deleted and re-created the FTP Connection. It worked fine afterwards.
您的 SSIS 作业错误的主要部分是
“ 0xC0029183 来源:本金余额文件 FTP 获取 FTP 任务说明:由“/Concerto/Virtus_Reports/Concerto 本金余额报告*.pdf”表示的文件不存在。结束错误 DTExec:包执行返回 DTSER_FAILURE (1) 开始:上午 10:00:00 完成: 10:00:33 AM 已用时间:33.088 秒。“包执行失败。”
您在 SSIS 包中配置的路径上似乎没有 pdf 文件。
请检查导入路径和 pdf 文件。
此致,
布拉尼斯拉夫
Main part of your SSIS job error is
" 0xC0029183 Source: Principal Balance File FTP Get FTP Task Description: File represented by "/Concerto/Virtus_Reports/Concerto Principal Balance Report*.pdf" does not exist. End Error DTExec: The package execution returned DTSER_FAILURE (1). Started: 10:00:00 AM Finished: 10:00:33 AM Elapsed: 33.088 seconds. The package execution failed. "
It seems that you don't have pdf file on path you have configured in your SSIS package.
Please,check up path and pdf files for import.
Best regards,
Branislav
如果是 FTP 连接,您只需在 FTP 任务之前创建一个脚本任务并为其设置密码,例如
ConnectionManager FTPConn;
FTPConn = Dts.Connections["FTP 连接管理器"];
FTPConn.Properties["ServerPassword"].SetValue(FTPConn,Dts.Variables["FtpPwd"].value);
如果是 OLE DB,您只需在 OLEDB 连接的连接字符串中添加密码即可。
In case of FTP Connection, you can just create one Script Task before FTP task and set a password for that for example
ConnectionManager FTPConn;
FTPConn = Dts.Connections["FTP Connection Manager"];
FTPConn.Properties["ServerPassword"].SetValue(FTPConn,Dts.Variables["FtpPwd"].value);
and in case of OLE DB you can just add password in the connection string of OLEDB Connection.
这是对我有用的步骤。
!
This are the steps that worked for me.
Worked!!
如果您的项目有其他包,那么更改“ProtectionLevel”可能并不明智。此外,如果它有其他包并且您想更改“ProtectionLevel”,那么您必须为所有其他包更改它。
解决方案可以是使用“变量”作为“服务器密码”。
这样一来,这个 FTP 连接密码将不再受项目的“ProtectionLevel”影响,并且您不需要更改项目的其他 SSIS 包。
If your project has other packages, then it may not be wise to change the "ProtectionLevel". Moreover, if it has other packages and you want to change the "ProtectionLevel" then you have to change it for all other packages.
A workaround solution can be to use the "Variables" for the "ServerPassword".
As a result, this FTP connection password will not be affected by the "ProtectionLevel" of the project anymore and you don't need to change the other SSIS packages of the project.
当我通过 ODBC 更改到新迁移服务器的源数据连接后,遇到一个包突然无法正常工作时,我遇到了这个问题。然后我不断收到“与服务器的连接被强制关闭”的问题。我发现即使构建和 ODBC 连接器相同,相同的包仍然可以在 DEV 服务器上成功运行。因此,我决定从 DEV 系统中获取包并将其拉入 LIVE 系统中。
解决此问题的最简单方法是执行以下操作:
I had this issue when I came across a package not working properly all of a sudden after a change to the source data connection via ODBC to a new migrated server. Then I kept getting a "connection to the server was forcibly closed" issue. I discovered that the same package continued to run successfully on the DEV server even though the build and ODBC connectors were identical. So, I decided to fetch the package from the DEV system and pull it into the LIVE system.
The easiest way to overcome this issue is to do the following: