Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SSI在通过代理作业执行时不构建文件路径,但在SSDT中工作_Sql Server_Ssis - Fatal编程技术网

Sql server SSI在通过代理作业执行时不构建文件路径,但在SSDT中工作

Sql server SSI在通过代理作业执行时不构建文件路径,但在SSDT中工作,sql-server,ssis,Sql Server,Ssis,我只是想听听建议/想法 我有一个SSIS包(SQL Server 2016),它执行以下操作: 它在网络共享上的文件夹中循环(我甚至授予“Everyone”组对此文件夹的完全控制权,并将文件夹中文件的文件路径分配给变量(@filepath) 然后将此变量用作发送电子邮件任务中的附件 当我在Visual Studio中交互执行时,\SSDT工作正常-我收到一封带有附件的电子邮件 如果我通过SQL代理作业打电话,我会收到电子邮件,但没有附件 作为测试,我还插入了@FilePath作为电子邮件的正文

我只是想听听建议/想法

我有一个SSIS包(SQL Server 2016),它执行以下操作:

  • 它在网络共享上的文件夹中循环(我甚至授予“Everyone”组对此文件夹的完全控制权,并将文件夹中文件的文件路径分配给变量(@filepath)

  • 然后将此变量用作发送电子邮件任务中的附件

  • 当我在Visual Studio中交互执行时,\SSDT工作正常-我收到一封带有附件的电子邮件

  • 如果我通过SQL代理作业打电话,我会收到电子邮件,但没有附件

  • 作为测试,我还插入了@FilePath作为电子邮件的正文-同样,当通过SSDT执行时,我会收到电子邮件中文件的路径,当通过代理作业时,正文为空

  • 我在循环中使用脚本任务来检索文件名

总之,当通过SQL代理作业执行时,它无法“查看”要检索路径的文件,即使我已将Everyone组设置为文件夹以及代理运行的帐户

有人知道我在这里可能遗漏了什么吗?一定是某种权限


谢谢。

为了完成这项任务,一夜之间的工作很成功。因此,修复方法是将“TargetServerVersion”从2017年更改为2016年,并重新部署到SSIS目录。

听起来代理无法访问共享。我假设您使用的是完整的UNC路径,并且SQL Server代理以AD帐户的形式运行?SSIDB有很多当一个包被执行时,f日志会显示什么?我使用“\\servername\folder\folder”作为路径。日志会显示它执行得很好,我想是这样的,它只是没有将路径写入@FilePath变量,所以你可以看到日志中的所有文件?这与你的描述不符;如果你能看到
@FilePath
是正确的如果您在日志中分配了一个值,那么电子邮件将包含该值(如果您正在使用它的值)。如果是这种情况,则意味着您的包有问题(或者您可能部署了旧版本,或者没有重新部署)。另外,我问的关于代理服务帐户的问题呢?为什么不使用For Each循环容器?我想我可能已经解决了。我已将TargetServerVersion从SQL Server 2017更改为SQL Server 2016,并重新部署到目录中。如果我从代理作业调用电子邮件包,它会工作并附加电子邮件。我不会100%的小时尽管如此,直到通宵作业运行为止,这是其中的一部分。但它看起来在表面上工作。谢谢你的帮助。传说,ssis i不是一堆便便吗