У меня есть удаленная отладка на сервере Windows 2003, доступ к которому осуществляется через Интернет. У меня VS 2008 SP1 установлен на моем устройстве для разработки XP.
Я запустил сайт на удаленном сервере и подключил ко всем процессам w3wp.exe на удаленном сервере. Я заметил, что .dll не загружает файл символов. Когда я пытаюсь загрузить соответствующий файл .pdb с моего локального компьютера, он сообщает, что файл не совпадает. У меня снят флажок «Требовать, чтобы исходные файлы точно соответствовали исходной версии». Сборка на удаленном сервере такая же, как и на моем устройстве для разработчиков. Сайт и .dll были скопированы из блока разработки на удаленный сервер, и с тех пор код не изменился. Итак, я знаю, что файлы .dll и .pdb должны совпадать или, по крайней мере, мне нужно принудительно сопоставить.
Вопросов:
Как мне загрузить файл .pdb? Я знаю, что точки останова не сработают, если не загружен файл символов. Я заметил, что файл .pdb не существует в папке «Временные файлы ASP.NET» на удаленном сервере. .Dll делает.
Какова правильная последовательность запуска удаленной отладки внутри VS? (Удаленная настройка завершена, и я могу видеть удаленные процессы). В VS у меня есть стартовая страница в качестве URL-адреса удаленного сайта. Я запускаю без отладки, а затем подключаюсь к w3wp.exe на пульте дистанционного управления. Это все?





Вы используете веб-сайт или веб-приложение (это скомпилированный проект, для которого вы развертываете DLL, или набор файлов aspx и aspx.cs, которые вы развертываете)?
Если это веб-приложение, вы развернули сборку выпуска или сборку отладки? Вы не сможете достичь точек останова при «отладке» релизной сборки, поскольку код довольно сильно оптимизирован.
У вас установлен параметр debug = true в разделе компиляции web.config? В противном случае отладка будет затруднена.
Наконец, при удаленной отладке я использую следующие шаги:
Если точки останова полые (тонкие красные кружки, а не заполненные диски), я часто проверяю окно стека в VS, чтобы узнать, что было загружено, а что нет.
Также я не могу найти файл% tmp% \ Visual Studio Web Debugger.log. Я заглянул в папку% tmp%, я заглянул в дерево папок с документами и настройками и дерево самого VS. Есть ли настройка в VS, чтобы включить это ведение журнала?
Как VS определяет, что dll и .pdb не совпадают? Отметки времени? Некоторое содержание? Они должны совпадать, потому что я копирую файлы со своего локального компьютера на удаленный сервер.
Извините за задержку: у меня обычно есть .pdb в каталоге bin веб-приложения вместе с .dll.
Это веб-приложение, а не веб-приложение. Все, что вы упомянули, уже сделано. Однако мой первый вопрос все еще в силе. Как получить файл .pdb для загрузки и где VS ожидает его расположения? Глядя на журнал сайта, я не вижу записываемых команд DEBUG.