Удаленная отладка серверной части веб-приложения с помощью Visual Studio 2008

Итак, я читал, что не рекомендуется устанавливать VS2008 на моем тестовом сервере, так как он слишком сильно меняет среду выполнения. Я никогда раньше не пробовал удаленную отладку с помощью Visual Studio, так что это «лучший» способ получить построчную удаленную отладку кода веб-приложения на стороне сервера. Я хотел бы иметь возможность установить точку останова, подключиться и начать пошаговое выполнение построчно, чтобы проверить поток кода и, вы знаете, отладить и прочее :).

Я уверен, что большинство ответов будут относиться к коду ASP.NET, и меня это интересует, но моя текущая кодовая база на самом деле представляет собой классические расширения ASP и ISAPI, поэтому меня это волнует немного больше.

Кроме того, мой тестовый сервер работает в VMWare, я заметил, что в последней установке VMWare упоминается что-то о поддержке отладки, но я не знаком с тем, что это значит... Кто-нибудь использует его, что он делает для вас?


person Bert Lamb    schedule 02.09.2008    source источник


Ответы (2)


Во-первых, это НАМНОГО проще, если и сервер, и ваша рабочая станция находятся в одном домене (серверу нужен доступ для подключения к вашей машине). В вашем каталоге C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\Remote Debugger\x86 (или x64, или ia64) находятся файлы, которые необходимо скопировать на сервер. Между версиями Visual Studio существуют разные версии, поэтому убедитесь, что они совпадают на стороне клиента и сервера. На сервере запустите msvsmon. Он скажет что-то вроде «Msvsmon запустил новый сервер с именем xxx@yyyy». Это имя, которое вы будете использовать в Visual Studio для подключения к этому серверу. Вы можете перейти в «Инструменты»> «Параметры», чтобы установить имя сервера и установить режим аутентификации (надеюсь, аутентификация Windows) — кстати, аутентификация без аутентификации не работает для управляемого кода.

На стороне клиента откройте Visual Studio и загрузите решение, которое вы собираетесь отлаживать. Затем перейдите в «Отладка» > «Присоединить к процессу». В поле «Квалификатор» введите имя сервера, которое вы видели ранее. Нажмите кнопку «Выбрать» и выберите тип кода, который вы хотите отлаживать, затем нажмите «ОК». Надеюсь, вы увидите список процессов на сервере, к которым вы можете подключиться (вы также должны увидеть на сервере, что монитор отладки только что сказал, что вы подключились). Найдите процесс, к которому нужно подключиться (при необходимости запустите приложение). Если это веб-сайт ASP.NET, вы должны выбрать w3wp.exe, а затем нажать «Присоединить». Установите точки останова и, надеюсь, теперь вы удаленно отлаживаете код.

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

person Paul Mrozowski    schedule 02.09.2008

Visual Studio поставляется с удаленным отладчиком, который вы может работать как exe на вашем сервере. Это работает лучше всего, если вы можете запустить его от имени того же пользователя домена, что и ваша копия Visual Studio. Затем вы можете выполнить присоединение к процессу из отладчика на вашем компьютере к процессу IIS на сервере и выполнить отладку, как если бы он выполнялся на вашем компьютере. Вы получаете больше возможностей для отладки .Net, но есть и поддержка старых платформ.

person Craig.Nicol    schedule 02.09.2008
comment
куда нам нужно скопировать файл msvsmon.exe на сервер? - person Abid Ali; 27.01.2014
comment
@abid Я не думаю, что местоположение имеет значение, вам нужно будет запустить его в любом месте с разрешениями на выполнение для правильной учетной записи. - person Craig.Nicol; 28.01.2014