ssis包执行直接成功,但通过c#代码失败

时间:2020-02-11 21:01:54

标签: c# sql-server ssis etl script-component

我有以下代码似乎可以正常运行,即使我直接在SSIS中执行包时,即使变量通过,每次从变量Resp返回失败时,也可以从c#BUT执行SSIS包。

同样,程序包包含一个写入SQL Server表的脚本组件。当直接在SSIS中执行该程序包时,一切正常,但是当使用以下代码通过C#调用同一程序包时,则什么也没有发生。我无法弄清楚我在做什么错。帮助!

string packageLocation = @"c:\packageLocationPath";
Package pkg;
Application app;
app = new Application();
pkg = app.LoadPackage(packageLocation, null);
var Resp = pkg.Execute();

1 个答案:

答案 0 :(得分:2)

检测错误

首先,您必须阅读程序包引发的错误。有两种方法可以检测这些错误:

(1)遍历错误

您可以通过访问Errors属性来遍历包错误。例如:

if(p.Errors.Count > 0){
    foreach(DtsError err in p.Errors){
        Messagebox.Show(err.Description);
    }
}

更多信息,位于:

(2)启用从程序包进行日志记录

您可以通过启用日志记录选项来捕获软件包中的所有错误,警告和信息:


可能的故障原因

  1. 请确保如果您使用Windows身份验证连接到SQL,则已授予用于通过C#执行应用程序的用户帐户进行连接。
  2. 如果程序包正在访问文件系统,请确保用户具有访问这些文件所需的权限
相关问题