"Источник недоступен" - отладка Visual Studio (даже после загрузки символов)
Я установил Visual Studio 2012 Professional для загрузки отладочных символов. Он настроен правильно и символы загружены.
Я добираюсь до строки кода, в которую я хочу войти:
bool result = Membership.ValidateUser("user", "password");
Я щелкаю на нем правой кнопкой мыши и выбираю step into specific-->Membership.ValidateUser()
Затем в Visual Studio открывается вкладка со словами:
Источник недоступен - для текущего местоположения нет исходного кода
Membership.ValidateUser()
находится в System.Web.Security
пространство имен, которое находится в System.Web.dll
, Если я открою окно модулей, я ясно вижу, что символы для этой сборки были загружены.
Если символы есть, почему я не могу войти в исходный код?
4 ответа
Исходный пошаговый режим доступен только для версий RTM или SP. Смотрите PDB файлы для.NET Framework 3.5 SP1 недоступно! (т.е. System.Web.pdb 2.0.50727.4016).
У вас могут быть символы, но у вас нет исходного кода. PDB не достаточно для отладки, но они обязательно должны связать ваш исходный код с исполняемым файлом. PDB полезны для сообщения об ошибках, поскольку они предоставляют подробную информацию о стеке вызовов, однако для отладки необходим исходный код.
У меня была похожая проблема, и вот как я ее решил.
Щелкните правой кнопкой мыши свой проект -> Свойства -> Компиляция -> Дополнительные параметры компиляции...
Затем установите "Создать информацию отладки" на "Полный" из выпадающего меню.
Надеюсь, это поможет.
Я столкнулся с той же проблемой, и в моем случае это версия 4.0, а не 4.5, но все та же проблема.
После проверки с помощью fiddler выясняется, что для многих DLL-файлов сервер по адресу reference server.microsoft.com возвращает 404, а затем Visual Studio откатывается и загружает его с сервера символов Microsoft по адресу msdl.microsoft.com, который не содержит фактический исходный код.,
Таким образом, в конце концов, пошаговое выполнение кода с помощью кода Microsoft не всегда работает, и можно прибегнуть к использованию .NET Reflector.
Я только что нашел другой ответ о переполнении стека: пошаговое выполнение исходного кода.NET Framework не работает, несмотря на установленные параметры, и в соответствии с этим проблема может быть связана с SP1.