не забудьте получить последний код из системы контроля версий, если вы находитесь в командной среде +1
на веб-странице Asp.Net возникает исключение, отображается сообщение об ошибке с полной трассировкой стека.
Пример ниже:
Трассировки стека:
IndexOutOfRangeException: индекс находился за пределами массива.
MyNameSpace.SPAPP.ViewDetailsCodeBehind.LoadView () +5112 MyNameSpace.SPAPP.ViewDetailsCodeBehind.Page_Load (Отправитель объекта, EventArgs e) +67
System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr fp, Объект o, Объект t, EventArgs e) +13
System.Web.Util.CalliEventHandlerDelegateProxy.Callback (Отправитель объекта, EventArgs e) +43
System.Web.UI.Control.OnLoad (EventArgs e) +98
... ...
Проблема в том, что отображаемый номер строки не соответствует строке в моем коде, которая породила исключение.
В приведенном выше примере в стеке показана строка с номером 5111, но мой код в файле .cs содержит всего 250 строк!
Страница aspx хранится на сайте SharePoint, и сборка с кодом была развернута в GAC. Кроме того, я скомпилировал в режиме отладки.
Учитывая настройки выше, как я могу узнать, какая строка в моем коде вызвала исключение?
Разъяснение, как указаноstrelokstrelok:
ВРежим выпуска число перед исключением не является строкой кода. Вместо этого это смещение нативного скомпилированного кода, которое не имеет никакого значения для людей. Подробнее об этом здесь:http://odetocode.com/Blogs/scott/archive/2005/01/24/963.aspx
ВРежим отладки файл PDB автоматически сопоставит смещение собственного кода с вашей строкой .cs в коде, а отображаемое число будет соответствующей строкой в коде.