【发布时间】:2013-08-23 06:40:58
【问题描述】:
我的 SSIS 包以执行流程任务开始。 Process 是一个网络控制台应用程序(FirstApp),从 Web 服务获取数据并将数据填充到 db 表中。当我在 OS Windows 下运行它时,它工作正常。但是当它在 SSIS 包下运行时,我有一个例外:
SSIS 包“STS.dtsx”正在启动。 错误:EPT 中的 0xC0014054 从 WS STS 抓取数据:无法锁定变量“ " 对于错误 0xC0010001 的读取访问 "找不到变量。如果在执行包期间尝试从容器上的 Variables 集合中检索变量,但该变量不存在,则会发生这种情况。变量名称可能已更改或未创建变量。”。 错误:EPT 中的 0xC002F304 从 WS STS 抓取数据,执行流程任务:发生错误并显示以下错误消息:“无法锁定变量” " 对于错误 0xC0010001 的读取访问 "找不到变量。如果在执行包期间尝试从容器上的 Variables 集合中检索变量,但该变量不存在,则会发生这种情况。变量名称可能已更改或未创建变量。”。 ”。 任务失败:EPT 从 WS STS 抓取数据 SSIS 包“STS.dtsx”完成:成功。
我在 SSIS 包的任务队列末尾有另一个执行进程任务,其中 .net 控制台应用程序 (SecondApp) 通过 Web 服务发送数据。它工作正常。
FirsApp 和 SecondApp 不接受参数并且不返回任何内容。
我使用 FirstApp 设置了对文件夹的“所有人”访问权限,禁用了防火墙等。 我在 FirstApp 之前添加了另一个“存根”任务。 我已将 FirstApp 的失败任务更改为 SecondApp。 我为 FirstApp 和 SeconApp 任务设置了类似的设置。 对我没有任何帮助。 任何的想法 ? 谢谢。
【问题讨论】:
-
它可能不带参数,但在 SSIS 中你必须指定一些空参数,这在包参数中找不到。
-
SecondApp 也不接受参数。但它在 SSIS 包的队列末尾工作正常。我已经用空和非空参数更改了第一个(FirstApp)任务参数。还是不行。
-
在同一任务中使用 .bat 文件来运行 FirstApp 对我也没有帮助。
-
这可能由于各种原因出现,最常见的原因是:a) 变量的范围或命名空间未正确定义 b) 属性 IsSourcePathVariable 使用错误 c) 表达式在执行前修改了变量的值