通过SSIS 2008 DTEXEC方法执行FTP-获取错误“进程退出代码为1,而预期值为0

时间:2018-07-11 13:19:59

标签: sql ssis sql-server-2008-r2 sftp ssis-2008

我还看到了有关此主题的其他帖子,其中一些建议使人们将ProtectionLevel设置为DontSaveSensitive。我已经确保将其设置为DontSaveSenistive,并检查了权限,并确保从哪里调用了文件/ dtsx文件,并为拥有SQL代理的服务帐户设置了足够的权限。

奇怪的是,在我进入以前的dtsx文件之一并不得不将数据类型精度从1个字符限制为30个字符之前,该过程运行良好。从字面上看,这是对该过程所做的唯一更改,但是现在我遇到了此错误。我之前遇到过此错误,这是在设置检查保护级别和权限/所有权的路径时。由于某些原因,当我进行了这些更改时,它消失了并开始工作。这次所有的东西(权限/所有权)都不正确,但是我遇到了同样的错误。

关于此过程的另一个奇怪的事情是,它只是失败的最后一步(FTP步骤)。当我尝试进入并执行psftp.exe并放入通常通过SSIS传递的命令时执行过程任务步骤时,psftp.exe告诉我端口号不正确。但是,当我在VS内的连接管理器上使用完全相同的端口测试连接时,它说连接成功。

此错误含糊不清!

我希望在更多尝试中获得一些指导。

谢谢!

1 个答案:

答案 0 :(得分:0)

SSIS工具和版本

只能使用安装了Business Intelligence Design Studio模板的Visual Studio 2008编辑SQL Server 2008和2008 R2。只能通过方便地使用物理SQL Server来获取这些信息。开发人员版可以使用,但是您需要某种形式的许可媒体才能使BIDS正常运行。

Visual Studio 2013将尝试将2008 / R2升级到内部以进行SQL Server 2012安装。完成此操作后,就不会再降级/降级了。

您使用的任何工具(dtexec,dtutil等)必须来自同一版本,否则,二进制文件要做的第一件事就是更新软件包以匹配该版本。对于执行(dtexec),每次,每次运行程序包时,都会延迟一段时间,因为原始文件会在内存中升级以匹配,然后开始执行(假设一切顺利)。听起来好像不是基于

  

由于错误0xC0010014 ...,导致包无法加载...

对于部署(dtutil),您只需支付一次升级费用,然后就可以永久升级。这可能不是您想要的。请注意,Visual Studio和SSMS之类的工具“知道”它们与哪个版本的工具相关联,因此从SSMS 2016进行部署可能会导致SQL Server 2016 SSIS的二进制文件将您的2008程序包升级到2016格式,然后尝试部署现在升级的位到您的2008盒子。一切都很令人沮丧,而且不直观。

从您的注释“在2008版本中,播放按钮显示为灰色...”表明您已在Visual Studio中打开了一个SSIS包文件。 Visual Studio将打开它并在其中绘制所有图标,但除非打开了Integration Services项目(并安装了BI模板),否则它实际上不能运行一个包。

假设您具有源代码管理,则可以回滚破坏所有内容的更改,然后尝试正确地编辑软件包。

执行流程任务

您有一个正在执行psftp.exe的执行过程任务,它正在生成1相对于0。这不好吗?根据以前与SFTP客户端的合作经验,他们相当挑剔,因此在生产环境中像我一样运行它会失败,因为我没有与域帐户相关联的任何内容,但是服务帐户在其配置文件中拥有所有正确的权限,因此运行得很好-同一台机器,相同的软件包,不同的用户。