Отладка приложения ASP.NET, работающего на удаленном сервере IIS, из VS2010 - PullRequest
15 голосов
/ 08 ноября 2010

Интересно, может ли кто-нибудь указать мне правильное направление?

Я пытаюсь отладить развернутое веб-приложение и не могу заставить приложение работать.Вот сценарий:

VS2010 установлен на моем компьютере - со всем исходным кодом.

IE8 на моем компьютере, переходящий на сайт ASP.NET на рабочем сервере IIS (файлы FWIW .pdb на рабочем сайте.)

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

Я предполагаю, что мне нужно настроить удаленную отладку?Если это так, если кто-нибудь знает какой-либо URL, чтобы помочь, это будет высоко ценится!

Заранее спасибо!

Джим

Ответы [ 2 ]

21 голосов
/ 05 февраля 2015

Вот полное пошаговое руководство, потому что там много разрозненной информации, а связанная статья Microsoft предполагает много информации.

Сначала давайте проясним термины, используемые в остальной части руководства:

diagram

Клиент - это компьютер, на котором вы разрабатываете
Удаленный - это компьютер, на котором развернут кодработает на IIS

  1. Установить msvsmon.exe ( M микро s oft V isual S tudio Mon itor) на удаленном компьютере.
    Вы можете найти исполняемый файл, установленный с Visual Studio на вашем клиенте, по следующему пути:

    <b>VS 2010</b>: C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Remote Debugger\x86 
    <b>VS 2017</b>: C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Packages\Debugger\X64

    Когда инструмент запущен и работает, вы должны увидеть следующее приложение:

    new server

    Монитор отладки создал сервер, к которому вы можете подключиться удаленно.Если вы работаете на компьютере с Windows, имя, вероятно, User@Remote.Запомните это имя, потому что оно понадобится вам позже.Если вы хотите скопировать его напрямую, вы можете перейти в Инструменты> Параметры, и вы увидите имя сервера.Вы можете даже изменить его на что-то другое, если хотите.

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

    В Visual Studio вы захотите подключиться к процессу на новом сервере.Перейдите в Инструменты> Присоединить к процессу или нажмите Ctrl + Alt + P

    attach to process

  3. В диалоговом окне «Присоединить к процессу» измените квалификатор с имени вашего текущего компьютера на имя нового сервера (<i>User@Remote</i>) и нажмите клавишу ввода, чтобы просмотреть список доступных процессов на удаленном компьютере:

    attach dialog

  4. Если все сразу возвращается, вы в хороших руках.Это означает, что не было никаких политик брандмауэра, препятствующих соединению с удаленным сервером, и вы можете перейти к шагу 6. ​​

    В качестве альтернативы, если вы получили следующее сообщение, это означает, что ваш брандмауэр блокирует клиентские и удаленные блокиот общения.

    Unable to connect to the Microsoft Visual Studio Remote Debugging Monitor named 'User@Remote'.  The Visual Studio Remote Debugger on the target computer cannot connect back to this computer. A firewall may be preventing communication via DCOM to the local computer. Please see Help for assistance.

  5. Если вы не смогли подключиться, может возникнуть ряд проблем в зависимости от политики вашего домена.Для официальных настроек брандмауэра вы можете проверить Microsoft Настроить брандмауэр Windows 7 для удаленной отладки , но я обнаружил, что его не хватает в деталях.

    Если подключение не удалось, но вы все равно получаетесообщение, которое пользователь подключил так:

    connected

    Тогда это означает, что проблема не в исходящих правилах на клиенте или входящих правилах на удаленном сервере.Скорее всего, проблема связана с правилами входящих сообщений на клиентском компьютере.

    Чтобы исправить это, на клиентском компьютере перейдите в Панель управления> Брандмауэр Windows> Расширенные настройки, которая должна открыть Брандмауэр Windows в режиме повышенной безопасности .Выберите Входящие правила и щелкните правой кнопкой мыши, чтобы ввести Новое правило :

    new rule

    Дайте правилу любое имя.Исходя из рекомендаций в этом вопросе , вместо исключения отдельных портов мы разрешим прохождение всего трафика для любого исполняемого файла Visual Studio.Перейдите в раздел «Программы и службы» и выберите полный путь к папке для установки Visual Studio 2010:
    %ProgramFiles% (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe

    Затем убедитесь, что правило применяется только к компьютерам в домене (убедитесь, что частные и общедоступныене проверены).

    visual studio rule

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

  6. На этом этапе вы должны увидеть список всех процессов на удаленном компьютере.Если вы хотите отладить приложение Windows, вам нужно просто выбрать имя процесса.Для ASP.NET мы хотим подключиться к w3wp.exe (WWW W orker P rocess).Если вы не видите его в списке, попробуйте отключить сервер, открыв веб-страницу приложения, которое вы хотите отладить.Вы можете сделать это на локальном хосте или перейдя по адресу в IIS с любого компьютера.

    attach dialog connected

    Убедитесь, что вы приложили правильный тип кода для вашего приложения.Вы можете выбрать между собственным (C ++ и т. Д.) Или Управляемым (VB, C # и т. Д.) Или выбрать автоматический и позволить Visual Studio принять решение.

  7. Если вы получите следующую ошибку, яобнаружил, что повторное открытие Visual Studio и msvsmon.exe с правами администратора устранило проблему

    Unable to attach to the process. The Visual Studio Remote Debugger (MSVSMON.EXE) has insufficient privileges to debug this process. To debug this process, launch the remote debugger using 'Run as administrator'. If the remote debugger has been configured to run as a service, ensure that it is running under an account that is a member of the Administrators group.

  8. Вы увидите предупреждение безопасности, которое вы можете принять, нажав Attach :

    security warning

  9. Последней проблемой, с которой я столкнулся, было получение файлов отладчика для загрузки.Вам необходимо убедиться, что выполняемые библиотеки в точности соответствуют тем, которые в данный момент загружены в Visual Studio, и что они имеют правильные файлы .pdb в решении на клиентском компьютере.Вы можете проверить, какие модули были загружены и откуда они загружены, перейдя в «Отладка»> «Windows»> «Модули» или нажав Ctrl + Alt + U .Для получения дополнительной информации о загрузке файлов отладчика вы также можете попробовать любой из следующих ресурсов:

Надеюсь, он работает и работает для вас на данный момент,Теперь вы можете перехватывать любые вызовы, сделанные в ваш размещенный в IIS код, и выполнять их так же, как и во время разработки.

Proof of Concept

Дальнейшее чтение :

9 голосов
/ 08 ноября 2010

Вот хорошая статья, чтобы сделать это:

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

Установите компоненты удаленной отладки на удаленном компьютере и запустите монитор удаленной отладки (msvsmon.exe) при запуске отладки
...