не забудьте получить последний код из системы контроля версий, если вы находитесь в командной среде +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 в коде, а отображаемое число будет соответствующей строкой в ​​коде.

Ответы на вопрос(3)

Ваш ответ на вопрос