2013-10-24 42 views
0

我正在修改的Visual Studio 2008(實際稱爲BIDS)中執行c#腳本(在SSIS中是一個ETL工具)。我收到一個錯誤消息,但是錯誤消息不讓我追蹤導致錯誤的行。如何找出哪條線路導致問題。如何查找在C#代碼中導致錯誤的確切行?

我試過使用,試着抓住我的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() 
+0

您是否處於調試模式? –

+0

有沒有辦法逐行通過代碼每行? – Marco

+0

如果你在VS中處於調試模式,你可以啓用菜單Debug下的所有異常。 –

回答

2

查看Technet上的頁面「Coding and Debugging the Script Component」。

特別是「調試腳本組件」的部分可能會給你一些指點:

腳本組件不支持使用斷點。 因此,在運行包時,無法逐句通過代碼並檢查值。可以使用以下方法通過 監視腳本組件的執行:

  • 中斷執行並通過使用在System.Windows.Forms命名空間中MessageBox.Show方法顯示模態消息。 (在完成調試過程後,刪除 此代碼。)
  • 引發信息性消息,警告和錯誤的事件。 FireInformation,FireWarning和FireError方法在Visual Studio輸出窗口中顯示事件 說明。但是,方法的FireProgress方法,Console.Write方法和Console.WriteLine
    方法不會在「輸出」窗口中顯示任何信息。來自FireProgress事件的消息
    出現在SSIS的進度選項卡上
    Designer。有關更多信息,請參閱在腳本中提高事件
    組件。
  • 將事件或用戶定義的消息記錄到啓用的日誌記錄提供程序。有關更多信息,請參閱登錄腳本組件。

如果你只是想檢查配置爲源或作爲轉換腳本組件 的輸出,沒有數據 保存到一個目的地,你可以停止連續的數據流計數 轉型與將數據查看器附加到腳本 組件的輸出。有關數據查看器的信息,請參閱調試數據 流程。

+0

的可能重複有一個很好的初學者教程呢? – Steam

1

Find the image

Chcek所有的框,並嘗試運行代碼。

相關問題