屏幕截图很棒,但细节将在子线上,因此在第一张图片中,您已展开 [+] 符号并显示“以用户 X 身份执行。无法打开步骤输出文件”
如果您选择该行,通常会在底部窗格中显示更多详细信息。
在 BIDS/SSDT 中工作但在 SQL 代理中不工作的东西的一般故障排除
也就是说,通常当某些东西在 BIDS/SSDT 中有效而在 SQL 代理中无效时,首先要看的是权限的差异。您正在 Visual Studio 中运行该程序包,并且您的凭据用于
- 文件系统
- 数据库(除非提供特定用户和通行证)
- 通用 SaaS(发送邮件任务将使用一些邮件主机来传输电子邮件)
在 SQL 代理作业中运行事情会使事情变得复杂,因为您现在可以在 SQL 代理帐户或 DBA 已建立的委托凭据集下运行每个作业的单个作业步骤。
更复杂的问题是网络资源——我的K:
驱动器可能映射到 \\server1\it\billinkc,而 SQL Server 代理帐户可能将其映射到 \\server2\domainAccount\SQLServer\,或者它可能完全未映射。
正如 Gowdhaman008 所提到的,也可能存在 32 与 64 位不匹配。通常,这特定于使用 Excel 作为源/目标,但也与其他 RDBMS 特定驱动程序和/或所述资源的 ODBC 连接一起使用。
具体到你的例子
根据错误消息的片段,我的主要假设是该帐户CORP\CORP-MAD$
无权访问文件所在的位置。要解决此问题,请确保 MAD$ 帐户对放置 Happy 文件的位置具有读/写权限。由于该帐户以 $ 结尾,因此它可能只存在于运行 SQL 代理的计算机上。如果它正在访问网络/SaaS 资源,您可能需要在 SQL Server 中(在安全性下)创建显式凭据,然后为 SSIS 子任务授权该凭据。
次要的,不太可能的可能性是文件不存在,这只是一个奇怪的发送邮件错误。我知道即使提供了电子邮件地址,参数“地址”也不能是空字符串我仍然得到很多点击。