Khi ngoại lệ được ném vào trang web Asp.Net, thông báo lỗi được hiển thị với dấu vết ngăn xếp hoàn chỉnh.Thông báo lỗi ngoại lệ với số dòng không chính xác
Ví dụ dưới đây:
Stack Trace:
IndexOutOfRangeException: Index lại vượt ra ngoài giới hạn của mảng.
MyNameSpace.SPAPP.ViewDetailsCodeBehind.LoadView() 5112 MyNameSpace.SPAPP.ViewDetailsCodeBehind.Page_Load (Object sender, EventArgs e) 67
System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr fp, Object o , Object t, EventArgs e) 13
System.Web.Util.CalliEventHandlerDelegateProxy.Callback (Object sender, EventArgs e) +43
System.Web.UI.Control.OnLoad (EventArgs e) 98
.. . ...
Vấn đề là số hiệu của tuyến đường yed không tương ứng với dòng trong mã của tôi có nguồn gốc ngoại lệ.
Trong ví dụ trên, ngăn xếp hiển thị số dòng 5111, nhưng mã của tôi phía sau tệp .cs chỉ có 250 dòng!
Trang aspx được lưu trữ trong trang SharePoint và Assembly với mã phía sau đã được triển khai cho GAC. Ngoài ra, tôi đã biên dịch trong chế độ Debug.
Với các cài đặt ở trên, làm cách nào tôi có thể tìm ra dòng nào trong mã của tôi đã gây ra Ngoại lệ?
Làm rõ như chỉ ra bởi strelokstrelok:
Trong chế độ Release số ở phía trước của ngoại lệ là KHÔNG dòng mã. Thay vào đó nó là một bù đắp cho mã được biên dịch tự nhiên, không có bất kỳ ý nghĩa nào đối với con người. Thông tin thêm về điều này tại đây: http://odetocode.com/Blogs/scott/archive/2005/01/24/963.aspx
Trong chế độ gỡ lỗi tệp PDB sẽ tự động ánh xạ mã gốc vào dòng .cs của bạn và mã được hiển thị SILL là dòng tương ứng trong mã.
..tất nhiên khi nó là một số dòng nó nói rõ ràng như vậy: ..... \ Areas \ Store \ Models \ CheckoutModel.cs: dòng 158 –