SSIS 包 - 通过 SQL Job Agent 触发时脚本任务不会执行

SSIS package - Script task does not get executed when triggered through SQL Job Agent

我有一个 SSIS 包,它使用数据流组件创建了 2 个文本文件。它连接到 SQL 数据库,如果查询 returns 数据,则会创建 2 个文件。 之后,脚本任务循环遍历写入 2 个文件的文件夹,确定最旧的文件并将其移动到另一个文件夹。 当我在服务器上执行包时,一切进展顺利。没有错误,所有功能都已执行。完美的。 但是,当我在作业中安排 SSIS 包时,上述脚本任务仅在 SQL 查询(数据流组件)returns 没有结果时执行,因此没有创建文件。该脚本然后将第二个文件从最后一个 运行 另一个文件夹移动。 如果数据流确实创建了 2 个新文件,则脚本任务不执行任何操作。 任何想法如何改变这种行为? 同样,这仅在通过作业执行时发生,而不是在本地 运行 时发生。

谢谢, 丹尼尔

当从 SQL 服务器执行 SSIS 包时,它们使用 SQL 服务器服务帐户 NT SERVICE\MSSQL$<Instance Name> 访问文件系统(其中 <Instance Name> 应该是替换为已安装的实例名称)。您必须授予此帐户访问所选目录或使用代理帐户 运行 SQL 作业的权限:

SQL 服务器服务帐号权限:

正在设置代理账户:

包 运行 使用代理帐户。所有其他包都是 运行 并保存在同一个文件夹中。在此文件夹中,保存在此文件夹中的文件必须移动到另一个文件,该文件保存到使用第三方 dll 的不同应用程序。 我正在使用反射调用库。但是dll没有在sql中注册。这会成为问题吗?