包没有从C#执行

时间:2012-12-19 22:41:01

标签: c# ssis

我有一个可以在BIDS内运行的程序包(或者MS现在为SSIS调用VS),也可以从执行包实用程序运行。

我尝试使用以下代码从C#运行它,但没有任何反应。 .Execute返回成功,ExecutionStatus完成。 .Execute需要几秒钟,它应该花费一两分钟而且它不会执行它应该做的事情(加载源文件,将它们移动到其他地方等)。

var pkgLocation = @"C:\ImportMetricsPackage.dtsx";
var app = new Microsoft.SqlServer.Dts.Runtime.Application();
var pkg = app.LoadPackage(pkgLocation, null);
var pkgResults = pkg.Execute();

我错过了什么?

1 个答案:

答案 0 :(得分:4)

您是否尝试捕获包事件?

MyEventListener eventListener = new MyEventListener();

var pkgLocation = @"C:\ImportMetricsPackage.dtsx";
var app = new Microsoft.SqlServer.Dts.Runtime.Application();
pkg = app.LoadPackage(pkgLocation, eventListener);
pkgResults = pkg.Execute(null, null, eventListener, null, null);

事件监听器类:

class MyEventListener : DefaultEvents
{
    public override bool OnError(DtsObject source, int errorCode, string subComponent, 
    string description, string helpFile, int helpContext, string idofInterfaceWithError)
    {
        // Add application-specific diagnostics here.
        Console.WriteLine("Error in {0}/{1} : {2}", source, subComponent, description);
        return false;
    }
}

有关详细信息,请参阅Loading and Running a Local Package Programmatically