Удаленная отладка не нарушает ошибки

Я новичок в удаленной отладке в Visual Studio, и под новым я подразумеваю, что никогда не делал этого раньше. Вот шаги, которые я предпринял, чтобы попытаться удаленно отладить приложение на одном из серверов в нашей сети:

  • открыть сайт в VS2008 "\\ сервер \ сайт"
  • Запустите службу msvsmon на «сервере» с «без аутентификации» и «разрешите любому пользователю отлаживать»
  • Начиная с VS2008, подключитесь к процессу w3wp на «сервере» с помощью удаленного транспорта.

начинается отладка, и все вроде нормально, но когда я перехожу на страницу с ошибкой, она не ломается и позволяет мне отлаживать. Я что-то упускаю?


person Russ Bradberry    schedule 23.09.2009    source источник
comment
Ваши точки останова отображаются заполненными или пустыми? Можете ли вы достичь точек останова на других страницах?   -  person Mike Blandford    schedule 23.09.2009
comment
точка останова пустая и говорит, что символы не загружены.   -  person Russ Bradberry    schedule 23.09.2009


Ответы (2)


Вам необходимо убедиться, что файлы PDB загружены правильно.

Visual Studio будет искать в этом удаленном месте файлы PDB (которые содержат информацию отладчика), и если не найдет их, у него нет необходимых отладочных символов, которые можно было бы сломать.

Чтобы добавить путь к списку расположений файлов символов (.pdb или .dbg)

  1. В меню "Инструменты" выберите "Параметры".
  2. В диалоговом окне «Параметры» щелкните узел «Отладка», чтобы открыть его.
  3. В разделе «Отладка» выберите категорию «Символы».
  4. На странице символов есть поле, в котором указано расположение файлов символов (.pdb). Над окном четыре значка. Щелкните значок папки, и в поле «Расположение файлов символов (.pdb)» появится редактируемый текст.
  5. Отредактируйте текст, чтобы добавить новый путь. Заполнение выписки поможет вам выбрать правильный формат.
  6. Убедитесь, что параметр «Искать в указанных выше местах только при ручной загрузке символов» не выбран, если только вы не хотите загружать символы вручную при отладке.
  7. Если вы используете символы на удаленном сервере символов, вы можете повысить производительность, указав локальный каталог, в который можно копировать символы. Для этого используйте кэширование символов с сервера символов в этот каталог. Обратите внимание: если вы отлаживаете программу на удаленном компьютере, каталог кэша относится к каталогу на удаленном компьютере.
  8. Щелкните ОК.

http://msdn.microsoft.com/en-us/library/x54fht41.aspx

person The Matt    schedule 23.09.2009
comment
Я пробовал это и ничего не делал, у меня есть файл pdb в папке bin, и он был скомпилирован с debug и debug = true в веб-конфигурации. - person Russ Bradberry; 23.09.2009
comment
Я думаю, что мы на правильном пути, потому что все знаки указывают на то, что символы не загружаются. на шаге 5 я указываю путь как \\ server \ website \ bin, это то место, где находится файл pdb. это неправильно? - person Russ Bradberry; 23.09.2009
comment
Нет, это должно сработать. Обычно, хотя я просто загружаю локальную копию своей PDB (которую вы можете найти в своей локальной папке bin), таким образом мне не нужно решать проблемы с разрешениями и тому подобное на удаленном сервере. - person The Matt; 23.09.2009
comment
когда я пытаюсь загрузить pdb вручную, он говорит, что он не соответствует модулю - person Russ Bradberry; 23.09.2009
comment
Попробуйте очистить свою сборку. Затем сделайте новую компиляцию в отладке. Скопируйте развернутые файлы вручную на удаленный сервер. Это становится немного странно, если вы делаете сборки / компиляции после развертывания. По сути, вы хотите, чтобы у вас были одинаковые версии всех файлов как на локальном, так и на удаленном компьютере. - person The Matt; 23.09.2009
comment
Кажется, это получилось. Я предполагаю, что файл pdb на сервере был старым по сравнению с тем, что я скомпилировал. Скорее всего, из-за того, что разработчики внесли изменения прямо на живом сервере. - person Russ Bradberry; 23.09.2009

Вот контрольный список.

person Mike Blandford    schedule 23.09.2009