0

我正在修改的 Visual Studio 2008(实际上称为 BIDS)中执行 ac# 脚本(在 SSIS 中,一个 ETL 工具)。我收到一个错误,但错误消息不允许我跟踪导致错误的行。如何找出导致问题的线路。

我尝试使用,尝试捕获并且我的 SSIS 包运行没有错误。但是,当我删除 try catch 时,包执行显示错误。无论如何,所有关于 SSIS 的讨论都不是真正需要的。它的错误/异常捕获在这里很重要。

    try
    {            
        //my code here
    }

    catch (Exception e)
    {
        Console.WriteLine("{0} Exception caught.", e);
    }

错误信息如下 -

Error: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object.
   at ST_LongCodeNameHere.csproj.ScriptMain.Main()
   --- End of inner exception stack trace ---
   at System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams)
   at Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTATaskScriptingEngine.ExecuteScript()
4

2 回答 2

2

查看Technet上的“编码和调试脚本组件”页面。

特别是,“调试脚本组件”部分可能会给您一些提示:

脚本组件不支持使用断点。因此,您无法在包运行时单步执行代码并检查值。您可以使用以下方法监控 Script 组件的执行情况:

  • 使用 System.Windows.Forms 命名空间中的 MessageBox.Show 方法中断执行并显示模式消息。(完成调试过程后删除此代码。)
  • 引发信息性消息、警告和错误的事件。FireInformation、FireWarning 和 FireError 方法在 Visual Studio 输出窗口中显示事件描述。但是,
    FireProgress 方法、Console.Write 方法和 Console.WriteLine
    方法不会在“输出”窗口中显示任何信息。FireProgress 事件的消息
    显示在 SSIS
    设计器的“进度”选项卡上。有关详细信息,请参阅在脚本
    组件中引发事件。
  • 将事件或用户定义的消息记录到启用的日志记录提供程序。有关详细信息,请参阅脚本组件中的日志记录。

如果您只想检查配置为源或转换的脚本组件的输出,而不将数据保存到目标,您可以使用行计数转换停止数据流并将数据查看器附加到脚本组件。有关数据查看器的信息,请参阅调试数据流。

于 2013-10-24T07:20:49.407 回答
1

查找图片

检查所有框并尝试运行代码。

于 2013-10-24T07:08:02.897 回答