2013-01-16 13 views
6

常にゼロです私はデバッグモードで私のプロジェクトを発表し、私のサーバーにDLLとPDBファイルの両方を入れ、
今私はこれらのコードを使用して例外の行番号を取得したい:C#の例外の行番号(0)

System.Diagnostics.StackTrace trace = new System.Diagnostics.StackTrace(ex, true); 
    Response.Write("Line: " + trace.GetFrame(0).GetFileLineNumber()); 

しかし、なぜ例外の行番号が常にゼロであるのか分からない - > 0
どうすれば修正できますか?

+0

これは参考になるかもしれません:http://stackoverflow.com/questions/2827856/stack-trace-with-incorrect-line-number – dash

+3

スタックトレースを使いこなす代わりに 'ex.ToString()'を使い、あなた自身のフレーム。 – Oded

+0

hiですが、ex.ToString()はエラーの行番号を返しません! – MoonLight

答えて

6

ジャストex.ToString()を使用

System.Diagnostics.StackTrace trace = new System.Diagnostics.StackTrace(ex, true); 
var stackFrame = trace.GetFrame(trace.FrameCount - 1); 
var lineNumber = stackFrame.GetFileLineNumber(); 
+0

は本当に感謝しています... – MoonLight

+0

'trace.GetFrame(trace.FrameCount - 1)'は、アプリケーションのメインメソッドで最も祖先のフレーム(したがって行)を取得しませんか? (またはシステムコードのmainへの呼び出しの直前ですか?) –

0

を試してみてください。それは私に働きかける。 お手伝いをしてください。

関連する問題