【发布时间】:2017-08-03 00:46:43
【问题描述】:
我开发了一个创建多个 .txt 文件的 SSIS 包。这些文件被压缩,然后需要删除 .txt 文件。使用 foreach 文件枚举器,我遍历特定文件夹的所有 .txt 文件。该文件夹是从配置中的变量中检索的,类似于:C:\Folder\
foreach 循环使用:*.txt 收集所有 .txt 文件,不遍历子文件夹并使用完整的限定名称。
在变量映射中,“FileName”变量填充了 0 索引。 在 foreachloop 中,我使用了一个文件系统任务。 此任务使用循环中填充的 FileName 变量删除之前生成的 .txt 文件。
在开发机器上运行起来就像一个魅力。都是绿色的,一点问题都没有。现在我将包和配置文件复制到测试环境中。没有删除文件的基本版本在这里运行得很好。我更换了包裹。没什么大不了的。
现在我运行 SQl 服务器代理作业,它开始运行。我可以看到所有文本文件在创建 zipfile 后出现和消失。但是,当所有文件都被删除时,包会导致错误。即上面标题中显示的错误。
- 我尝试查找可能已被删除的连接管理器
- 查找配置中命名但包中不存在的连接管理器。
没有找到这样的东西。烦人的部分是该程序包功能齐全,但仍会导致错误。
编辑:我注意到如果我使用执行包实用程序和 dev.配置它给出相同的错误。
希望有人能够帮助我。 提前致谢!
【问题讨论】:
-
如果您将
File System Task上的 DelayValidation 属性更改为 True,并且在没有 .txt 文件的情况下运行,它仍然会失败吗? -
这并没有什么不同。我发现如果我使用删除操作禁用了文件系统任务,错误就会消失,并且代理作业会成功运行。文件系统任务使用在 foreach 循环中设置的变量作为源。有什么想法吗?
-
鉴于您的分辨率(删除任务并重新添加),我想知道任务上是否没有引用无效对象的表达式。
标签: ssis