在我的Windows用户帐户下在Visual Studio 2012中开发的我的SSIS项目包括两个软件包,SendMailOnly.dtsx和SendMailWithAttachment.dtsx。两者都使用脚本任务发送电子邮件。第一个没有附件,第二个附加了网络文件夹中的文件。这两个包在我的开发环境中运行良好。然后,该项目将部署到网络SQL Server上的SQL Server Integration Service Catalogs。从那里,使用我的Windows帐户通过SQL Server代理中的作业调用包。第一个包成功执行,但第二个包失败。
的错误消息统计信息“脚本任务错误:调用目标已抛出异常”。
请提前通知并表示感谢。
这是我的代码:
public void Main()
{
MailMessage message = new MailMessage();
SmtpClient smtp = new SmtpClient();
message.From = new MailAddress("email@mydomain.com");
message.To.Add(new MailAddress("myemail@mydomain.com"));
message.Subject = "SSIS Email";
message.Body = "email with attachment";
message.Attachments.Add(new Attachment(fileName));
}
答案 0 :(得分:1)
如果它在您的计算机上运行良好,但在服务器上运行不正常,那么这可能是文件访问安全问题?与SQL Server代理服务关联的帐户ID可能无法访问附件所在的文件夹。尝试将该帐户添加到该文件夹。
您可以导航至Windows Start \ Administrative Tools \ Services
找到此帐户,查找服务SQL Server Agent ()
并找到Log On As
下列出的用户帐户。
希望这有帮助!
答案 1 :(得分:0)
将此添加到您的代码中。这将有助于了解错误:
public void Main()
{
...
try
{
...
Dts.TaskResult = (int)ScriptResults.Success;
}
catch (Exception ex)
{
Dts.Events.FireError(0, "ERROR", ex.Message, null, 0);
Dts.TaskResult = (int)ScriptResults.Failure;
}
}
即使您可以使用调试器来获取您所面临的错误的更多详细信息。