Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.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
SSIS包错误-通过C#控制台应用程序执行_C#_Ssis_Dts - Fatal编程技术网

SSIS包错误-通过C#控制台应用程序执行

SSIS包错误-通过C#控制台应用程序执行,c#,ssis,dts,C#,Ssis,Dts,我是这个线程的新手,我陷入了需要通过C#控制台应用程序执行SSIS包的困境 下面是我用来执行包的代码 Package pkg; Application app; DTSExecResult pkgResults; pkgLocation =@"D:\MIS Reports\TERADATA\Daily_CBASQ1_Loading.dtsx"; app = new Application(); pkg = app.LoadPackage(pkgLocation, null); pkgResul

我是这个线程的新手,我陷入了需要通过C#控制台应用程序执行SSIS包的困境

下面是我用来执行包的代码

Package pkg;
Application app;
DTSExecResult pkgResults;

pkgLocation =@"D:\MIS Reports\TERADATA\Daily_CBASQ1_Loading.dtsx";
app = new Application();
pkg = app.LoadPackage(pkgLocation, null);
pkgResults = pkg.Execute();
但它抛出了一个错误:

The package failed to load due to error 0xC0011008 
"Error loading from XML. No further detailed error information can be specified for this problem because no Events object was passed where detailed error information can be stored." 
CPackage::LoadFromXML失败时会发生这种情况


请帮忙

这更像是注释,但希望发布可能有助于调试的代码

您可以添加EventListener,它可以帮助您捕获实际错误

  class MyEventListener : DefaultEvents
      {
        public override bool OnError(DtsObject source, int errorCode, string subComponent, 
          string description, string helpFile, int helpContext, string idofInterfaceWithError)
        {

          Console.WriteLine("Error in {0}/{1} : {2}", source, subComponent, description);
          return false;
        }
      }
现在像这样调用包,并更新有问题的实际错误

 MyEventListener eventListener = new MyEventListener();
pkgLocation =@"D:\MIS Reports\TERADATA\Daily_CBASQ1_Loading.dtsx";
app = new Application();
pkg = app.LoadPackage(pkgLocation, eventListener);
pkgResults = pkg.Execute(null, null, eventListener, null, null);

请在下面找到我的代码:

    static void Main(string[] args)
    {
        string pkgLocation;
        Package pkg;
        Application app;
        DTSExecResult pkgResults;
        MyEventListener eventListener = new MyEventListener();


        pkgLocation =@"D:\MIS Reports\TERA DATA\Daily_CBASQ1_Loading.dtsx";
        app = new Application();
        pkg = app.LoadPackage(pkgLocation,eventListener);
        pkgResults = pkg.Execute();

        Console.WriteLine(pkgResults.ToString());
        Console.ReadKey();
    }
}

class MyEventListener : DefaultEvents
{
    public override bool OnError(DtsObject source, int errorCode, string subComponent,
           string description, string helpFile, int helpContext, string idofInterfaceWithError)
    {
        // Output Error Message
        Console.WriteLine("Error in {0}/{1} : {2}", source, subComponent, description);
        return false;
    }
}
错误:


由于错误0xC0010014,无法加载程序包“发生了一个或多个错误。在此错误之前应该有更多特定错误,用于解释错误的详细信息。此消息用作遇到错误的函数的返回值。”。当CPackage::LoadFromXML失败时会发生这种情况。

您的包是否需要从配置文件中输入?您是否尝试使用
DTEXEC.EXE执行该包
?您可能会收到更好的错误消息。该软件包的保护级别是多少?我的控制台应用程序中已经有了这段代码,但问题仍然没有解决,但感谢您的评论。添加这段代码不应该解决任何问题,相反,您应该能够获得有关错误的更多信息…如果您有这段代码,您可以发布错误…还有,你的问题我没有看到这个代码这就是为什么建议它