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

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

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

VS2010, установленный на моей машине, со всем исходным кодом.

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

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

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

Спасибо заранее!

Джим

Ответы

Ответ 1

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

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

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

Ответ 2

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

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

diagram

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

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

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

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

    new server

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

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

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

    attach to process

  3. В диалоговом окне "Присоединить к процессу" измените Qualifier с вашего текущего имени компьютера на имя нового сервера ( [email protected]) и нажмите Enter, чтобы увидеть список доступных процессов на удаленном компьютере:

    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 в режиме повышенной безопасности. Выберите Inbound Rules и щелкните правой кнопкой мыши, чтобы ввести новое правило:

    new rule

    Дайте правилу любое имя. Основываясь на рекомендациях в этом вопросе SO, вместо освобождения определенных портов мы разрешим прохождение всего трафика для любого исполняемого файла 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, С# и т.д.) Или выбрать автоматический и позволить 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. Вы увидите предупреждение безопасности, которое вы можете принять, нажав Прикрепить:

    security warning

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

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

Proof of Concept

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