C# 包未从C执行#
我有一个运行良好的包,它可以从BIDS(或者MS现在调用VS for SSI的任何东西)和执行包实用程序中运行 我试着用下面的代码从C#运行它,但什么也没发生。.Execute返回success,ExecutionStatus已完成。当.Execute需要一两分钟的时间时,它需要几秒钟,但它没有完成它应该做的事情(加载源文件,将它们移到其他地方,等等)C# 包未从C执行#,c#,ssis,C#,Ssis,我有一个运行良好的包,它可以从BIDS(或者MS现在调用VS for SSI的任何东西)和执行包实用程序中运行 我试着用下面的代码从C#运行它,但什么也没发生。.Execute返回success,ExecutionStatus已完成。当.Execute需要一两分钟的时间时,它需要几秒钟,但它没有完成它应该做的事情(加载源文件,将它们移到其他地方,等等) 我遗漏了什么?您是否尝试捕获包事件 MyEventListener eventListener = new MyEventListener();
我遗漏了什么?您是否尝试捕获包事件
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;
}
}
有关更多详细信息,请参阅。您是否尝试捕获包事件
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;
}
}
有关详细信息,请参阅。是的,无错误。我还尝试了OnPostExecute,它在包完成执行(无论它在做什么)之前触发了几次。是的,没有错误。我还尝试了OnPostExecute,它在包完成执行(无论它在做什么)之前触发了几次。启动SSIS包的代码是正确的。事实上,它的行为并不像预期的那样,这让我相信,当从代码开始时,它缺少了一些东西,可能是一个配置,并且它运行在默认值上,可能是不正确的值。如果未启用日志记录,请尝试使用SQL Server目标,并在信息、警告、预执行、执行后、OnError和OnTaskFailed上显示以下事件。信息和警告将识别配置问题。Pre/Post将给出任务时间(短时间)。错误和失败只是良好的实践。重新运行并检查输出。OnTaskFailed正在启动第一个SQL任务。我怎样才能获得更多关于它失败原因的信息?我尝试了一大堆没有用的东西(taskHost.Description/Name/ExecutionResult/ExecutionValue/InnerObject)。如果您将OnTaskFailed日志记录到文件或SQL表中,您应该能够查看消息列。否则,我认为@alex Filipovic链接的代码应该可以工作。如果我冒昧猜测一下,您将遇到身份验证问题。这不是从网页或类似的地方运行的,是吗?启动SSIS包的代码是正确的。事实上,它的行为并不像预期的那样,这让我相信,当从代码开始时,它缺少了一些东西,可能是一个配置,并且它运行在默认值上,可能是不正确的值。如果未启用日志记录,请尝试使用SQL Server目标,并在信息、警告、预执行、执行后、OnError和OnTaskFailed上显示以下事件。信息和警告将识别配置问题。Pre/Post将给出任务时间(短时间)。错误和失败只是良好的实践。重新运行并检查输出。OnTaskFailed正在启动第一个SQL任务。我怎样才能获得更多关于它失败原因的信息?我尝试了一大堆没有用的东西(taskHost.Description/Name/ExecutionResult/ExecutionValue/InnerObject)。如果您将OnTaskFailed日志记录到文件或SQL表中,您应该能够查看消息列。否则,我认为@alex Filipovic链接的代码应该可以工作。如果我冒昧猜测一下,您将遇到身份验证问题。这不是从网页或类似的东西上运行的,是吗?