2013-01-16 29 views
6

tôi công bố dự án của tôi trong chế độ gỡ lỗi và đưa cả hai dll và file pdb trong máy chủ của tôi,
bây giờ tôi muốn để có được số dòng ngoại lệ sử dụng các mã:C Số # Exception Dòng Is Always Zero (0)

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

nhưng tôi không biết tại sao số dòng ngoại lệ luôn bằng 0 -> 0
làm cách nào để khắc phục sự cố?

+0

Điều này có thể hữu ích: http://stackoverflow.com/questions/2827856/stack-trace-with-incorrect-line-number – dash

+3

Chỉ cần sử dụng 'ex.ToString()' thay vì làm rối tung với dấu vết ngăn xếp và tự tạo khung. – Oded

+0

hi, nhưng ex.ToString() không trả lại số dòng lỗi! – MoonLight

Trả lời

6

Hãy thử

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

thực sự đánh giá cao nó ... – MoonLight

+0

Không 'trace.GetFrame (trace.FrameCount - 1)' có được khung tổ tiên nhất (và do đó dòng) của mã trong phương pháp chính của ứng dụng của bạn? (hoặc ngay trước khi cuộc gọi đến chính trong mã hệ thống?) –

0

Chỉ cần sử dụng ex.ToString(). Nó làm việc với tôi. Hy vọng điều đó sẽ hữu ích.

Các vấn đề liên quan