SSIS包执行在一个包上失败,但在另一个包上没有

时间:2017-02-15 18:16:44

标签: c# visual-studio-2012 ssis

在我的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)); 
}

2 个答案:

答案 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;
    }
}

即使您可以使用调试器来获取您所面临的错误的更多详细信息。