【发布时间】:2015-05-13 21:04:11
【问题描述】:
我有一个带有脚本任务的 SSIS 包,当我尝试在本地系统中运行它时出现以下错误。它适用于我的同事以及生产环境。但是,我无法在本地运行它来测试。我在 main 方法中保留了一个调试点,但从未到达,在它进入 main 方法之前我得到了错误。
我正在使用 VS 2010,.Net 框架 4.5。
脚本任务会编译。我收到以下消息 SSIS 包“..\Test.dtsx”开始。错误:0x1 测试:调用目标已引发异常。任务失败:测试 SSIS 包“..\Test.dtsx”完成:成功。程序“[2552] DtsDebugHost.exe: DTS”已退出,代码为 0 (0x0)。
以下是代码:
public void Main()
{
try
{
LogMessages("Update Bug package execution started at :: " + DateTime.Now.ToLongTimeString());
LogMessages("Loading package configuration values to local variables.");
strDBConn = Dts.Variables["User::DBConnection"] != null ? Dts.Variables["User::DBConnection"].Value.ToString() : string.Empty;
strTPCUrl = Dts.Variables["User::TPCUrl"] != null ? Dts.Variables["User::TPCUrl"].Value.ToString() : string.Empty;
TfsTeamProjectCollection objTPC = new TfsTeamProjectCollection(new Uri(strTPCUrl));
WorkItemStore objWIS = new WorkItemStore(objTPC);
WorkItemCollection objWIC = objWIS.Query("SELECT...");
foreach (WorkItem wi in objWIC)
{
}
}
catch(Exception ex)
{
}
当我从 TfsTeamProjectCollection 注释代码时 objTPC = new TfsTeamProjectCollection(new Uri(strTPCUrl));脚本成功执行。但是,如果我保留 TfsTeamProjectCollection objTPC = new TfsTeamProjectCollection(new Uri(strTPCUrl));并评论其余的,我得到了例外。 我确实可以访问该 URL。
我在脚本任务中使用 Microsoft.TeamFoundation.Client.dll 和 Microsoft.TeamFoundation.WorkItemTracking.Client.dll。但是包中的dll版本是10.0,而我的GAC中的dll版本是12.0。会不会有问题?
【问题讨论】:
-
我们也很困惑。也许是由于问题中缺少代码。否则,我们无法提供权威的答案。它可能安装在那些机器上的自定义 DLL/3rd 方软件不在你的机器上,但这只是猜测
-
哇,这并没有给你太多的继续,不是吗?当您在 SSDT 中运行它(在调试模式下)时,您是否梳理了所有写入 DEBUG 窗口的消息?这将是您找到有关调用目标实际抛出的异常的线索的最佳选择。
-
另外,您能否验证脚本任务将在您的机器上编译?
-
脚本任务会编译。我收到以下消息 SSIS 包“..\Test.dtsx”开始。错误:0x1 测试:调用目标已引发异常。任务失败:测试 SSIS 包“..\Test.dtsx”完成:成功。程序“[2552] DtsDebugHost.exe: DTS”已退出,代码为 0 (0x0)。
-
如果它是一个脚本任务,您可以在 Visual Studio 中创建一个简单的控制台应用程序,尝试一下并在您收到此消息时亲自查看错误。我相信当您尝试调用您无法调用的内容时会引发上述异常。
标签: c# ssis script-task