• Microsoft .NET
  • ASP.NET
  • Замена URL с помощью ASP.NET для поисковой оптимизации

Удаленная отладка IIS: Отлаживайте ваше приложение ASP.NET, размещенное на удаленном сервере IIS

ОГЛАВЛЕНИЕ

Данная статья описывает, как настроить отладку и отлаживать веб-приложение ASP.NET, размещенное на удаленном сервере IIS. Также предоставлены подробное описание msvsmon.exe и его конфигурация.

Оглавление

  • Вводные сведения
  • Введение
  • Средства отладки VisualStudioдля ASP.NET
    • Внутренний отладчик Visual Studio
    • Локальная отладка на IIS
    • Удаленная отладка на IIS
  • Зачем нужна удаленная отладка
  • Инструмент удаленной отладки
  • Запуск инструмента удаленной отладки
    • Запуск msvsmon.exe
    • Конфигурирование режима проверки подлинности
      • Проверка подлинности Windows
      • Без проверки подлинности
  • Прикрепление процесса из удаленной системы
    • Прикрепление процесса в режиме проверки подлинности Windows
    • Прикрепление процесса в режиме без проверки подлинности
  • Отладка для нескольких пользователей
  • Несколько важных советов по удаленной отладке
  • Заключение

 


Вводные сведения:

Недавно была опубликована статья об Отладке приложения ASP.NET, размещенного на сервере IIS, с помощью прикрепления процесса. Были получены очень хорошие отзывы от всех читателей, предложивших написать статью об удаленной отладке на IIS. Данная статья перед вами.

Введение:

Перед началом чтения данной статьи желательно прочитать предыдущую статью об отладке вашего приложения ASP.NET, размещенного на IIS: прикрепление процесса и выявление, какой процесс нужно прикрепить. Эта статья даст вам базовые знания об отладке приложения ASP.NET, размещенного на локальном сервере, наряду с выбором процесса из множества процессов. Статья была посвящена примеру, когда IIS установлен на локальном сервере, что означает, что вы разместили ваш сайт в вашей локальной среде разработки на вашем веб-сервере/рабочем сервере с установленным на нем visual studio. Однако данный сценарий нереален.

Вернемся  к данной статье: она посвящена удаленной отладке на IIS. Вы разрабатываете свое приложение в локальной системе, размещенной на удаленном веб-сервере, и сейчас вам нужно его отладить. Как вы будете это делать? Данная статья описывает все необходимые шаги, а именно: как настроить удаленную отладку, прикрепление процесса из удаленного сервера, запуск отладки и т.д. Это одна из самых сложных задач в ASP.NET. Надеюсь, в статье она объяснена понятно.

Средства отладки Visual Studio для ASP.NET

В Visual Studio можно отлаживать приложение тремя разными способами. Они следующие:
•    Внутренний отладчик Visual Studio
•    Локальная отладка на IIS
•    Удаленная отладка на IIS

Внутренний отладчик Visual Studio:

Все знают, что visual studio имеет свой собственный внутренний инструмент отладки ASP.NET, используемый для отладки веб-приложения ASP.NET во время его разработки. Процесс, используемый для отладки приложения внутри visual studio, - это WebDev.WebServer.Exe . Механизм ASP.NET использует WebDev.WebServer.exe для отладки приложения. Если вы хотите более подробно ознакомиться с ним, читайте это. 

 

Рисунок: Блок-схема внутреннего отладчика Visual Studio

Локальная отладка IIS:

Ей посвящена прошлая статья. Чтобы освежить детали, весь сценарий объясняется с помощью следующей схемы (хотя в этом не было нужды, так как сценарий уже был изложен в прошлой статье, все же она используется только для сопоставления с удаленной отладкой).


 
Рисунок: Блок-схема отладки сайта ASP.NET с локального сервера IIS

При локальной отладке на IIS, IIS должен быть установлен в локальной системе, где установлен visual studio. Для отладки приложения, размещенного на IIS из visual studio, нужно прикрепить работающий процесс (w3wp.exe) внутри visual studio. После этого можно будет запустить отладку веб-приложения.

Удаленная отладка IIS:

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

 

Рисунок: Блок-схема удаленной отладки приложения ASP.NET

Удаленная отладка с помощью Visual studio и удаленного IIS очень легко настраивается. Инструмент, используемый для настройки и конфигурирования процесса, называется "msvsmon.exe". Ниже описаны все до единого шаги по запуску, конфигурированию инструмента msvsmon и отладке приложения. Но перед этим рассмотрим, зачем нужна удаленная отладка.

Зачем нужна удаленная отладка

Перед переходом к деталям нужно разобраться, когда надлежит использовать удаленную отладку,
•    На локальном сервере разработки не установлен IIS.
•    Сервер разработки и сервер компоновки/выпуска/хостинга различаются
•    Приложение размещено в централизованном месте.


Инструмент удаленной отладки

Инструмент, используемый для удаленной отладки приложения ASP.Net, называется "Msvsmon.exe". Инструмент удаленной отладки (Msvsmon.exe) – маленькое приложение на базе windows, которое Visual Studio 2005 применяет для удаленной отладки. Оно имеет очень простой пользовательский интерфейс, упрощающий настройку и конфигурирование. Во время удаленной отладки Visual Studio 2005 работает на одном компьютере, а инструмент удаленной отладки работает на удаленном компьютере вместе с приложением, которое вы отлаживаете. 

 

Рисунок: Блок-схема удаленной отладки приложения ASP.NET с помощью msvsmon

Если нужно отладить приложение, размещенное на удаленном IIS, необходимо запустить msvsmon.exe на удаленном сервере, и наша система разработки – хозяин отладчика, в котором мы будем отлаживать наш клуб.

Запуск msvsmon.exe

Пути к установленному Msvsmon.exe следующие:
•    Install path\Microsoft Visual Studio 8\Common7\IDE\Remote Debugger\x86

Сначала нужно запустить приложение из местоположения, и мы получим следующий экран,

Рисунок: Первый запуск msvsmon.exe

В момент запуска приложения окно покажет статусное сообщение "Msvsmon запустил новый сервер с именем '<имя_сервера>'. Ожидает новое подключение". Это значит, что инструмент контроля отладки готов подключиться к некоторому удаленному серверу. Теперь можно подключиться к данному удаленному серверу и получить список всех процессов, выполняющихся на сервере.

Конфигурирование режима проверки подлинности

Конфигурирование инструмента msvsmon очень простое. Главная конфигурация требует режим проверки подлинности (аутентификации). Msvsmon поддерживает два типа аутентификации
•    Аутентификация Windows
•    Без аутентификации

Аутентификация Windows

Msvsmon обеспечивает высокий уровень безопасности в режиме аутентификации windows. Пользователь, желающий отлаживать приложение удаленно, должен быть опознан, то есть он должен иметь достаточно разрешений на получение доступа к средству отладки из удаленной системы. Чтобы настроить режим аутентификации Windows, нужно перейти в "Инструмент" > "Параметры". Появится следующее окно,

 

Рисунок: Настройка и конфигурирование параметров безопасности

В нем есть кнопка разрешения наряду с переключателем аутентификации windows. Используя их, можно давать разрешения любому пользователю, являющемуся членом данной группы windows. Если нажать на кнопку разрешения, появится следующее окно:

 

Рисунок: Добавление пользователя для аутентификации windows

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

 

Рисунок: Добавление пользователя для аутентификации windows

Теперь я дал себе разрешение на удаленную отладку (из хозяина (хоста) отладчика). 

 

Рисунок: Разрешение на отладку для выбранного пользователя

Аналогично можно выбрать любого пользователя из Active Directory и можно отклонить запрос на удаленную отладку, несмотря на то, что пользователь - прошедший проверку пользователь Windows.

Способ удаленной отладки при режиме аутентификации windows описан в разделе прикрепления процесса.

Без аутентификации

В данном режиме аутентификации отсутствует защита. Любой может отлаживать удаленно, если режим аутентификации установлен в "без аутентификации". Так как данный режим отладки абсолютно не защищен, поэтому он должен использоваться только в защищенной сети.

 

Рисунок: Конфигурирование режима без аутентификации

Режим без аутентификации поддерживает только собственную отладку. Вы можете угадать поведение из предупреждающего сообщения. Есть кнопка-флажок "Разрешить отладку любому пользователю". Если ее отметить, любой пользователь сможет отлаживать.

В следующем разделе описано, как прикреплять процесс для удаленной отладки в режимах Windows и без аутентификации.


Прикрепление процесса из удаленной системы

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

Перед тем, как сделать то, что нам нужно, мы создали веб-приложение и разместили его на IIS, где работает msvsmon. Нам необходимо подключиться к нему из нашей локальной системы, где находится наш код. Рассмотрим вариант режима аутентификации windows

Прикрепление процесса – режим аутентификации Windows

Сначала нужно открыть приложение из visual studio в нашей системе разработки. Теперь нам нужно прикрепить процесс с удаленного сервера. Перейдите в Инструмент > Прикрепить процесс

 

Рисунок: Прикрепление процесса из Visual Studio

После нажатия на "Прикрепить процесс" получим следующее окно.

 

Рисунок: Стандартный список процессов

Сейчас оно показывает все процессы, в данный момент выполняющиеся в системе. Теперь нам нужно подключить его к удаленной системе. Сейчас я уже запустил msvsmon с именем "abhijit.jana", и он ожидает нового подключения.

Рисунок: msvsmon выполняется на удаленном хосте

Сейчас я собираюсь соединиться с удаленной системой из моей локального ЧЕГО? интегрированной среды разработки visual studio. Что нужно сделать? Нужно указать имя удаленного сервера в поле “Уточнитель” в окне прикрепления процесса.

 

Рисунок: Соединение с удаленным хостом и получение списка процессов

Сейчас в списке процессов перечислены все процессы с удаленного сервера вместе с рабочим процессом ((w3wp.exe). Это точный рабочий процесс, который нужно прикрепить к нашему коду. Еще один момент: когда мы получаем список процессов, это значит, что удаленный сервер подключен. Если сейчас проверить окно msvsmon, оно покажет еще одно сообщение, что пользователь подключен. Посмотрите на снимок экрана

Рисунок: Отладочный монитор показывает сообщение о подключении

Теперь наше приложение готово к отладке. Установите точку останова/остановки в вашем коде и приступайте к отладке. Здесь наш вебсайт [размещено на удаленном сервере IIS], имеющий серверную кнопку и приложение, можно отлаживать по нажатию кнопки.

 

Рисунок: Подключение к сайту по URL хоста

Теперь процесс прикреплен  в/к нашей visual studio, и я установил точку останова/остановки  на методе нажатия кнопки. Здесь показан результат.

 

Рисунок: Отладчик в точке останова/остановки

Приступайте к отладке с удаленного сервера. Теперь рассмотрим способ удаленной отладки в режиме без аутентификации.

 Прикрепление процесса – Режим без аутентификации

Это очень похоже на прикрепление процесса с аутентификацией windows. Уже было рассмотрено, как конфигурировать режим без аутентификации в удаленном отладчике. Нужно прикрепить процесс аналогичным образом, как было сказано. Есть несколько изменений. Нужно выбрать режим передачи -Удаленный (только собственный, без аутентификации) [ смотрите снимки экрана] и нужно указать уточнитель "abhijit.jana: 4015". Посмотрите на снимки экрана:

 

Рисунок: Прикрепление процесса в режиме без аутентификации

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

 

Рисунок: Статусное сообщение для режима без аутентификации

На этом закончено объяснение того, как сделать отладку вашего приложения с удаленного сервера IIS в режимах windows и без аутентификации.


Отладка для нескольких пользователей

Это одна из самых потрясающих функций инструмента Msvsmon. Инструмент отладочного монитора Msvsmon позволяет нескольким пользователям отлаживать одновременно. Каждый экземпляр удаленного отладчика имеет уникальное имя сервера. Уже было показано, что имена сервера изменяемые, поэтому можно дать экземпляру удаленного отладчика любое имя сервера. Теперь несколько пользователей смогут подключаться к одному и тому же серверу

 

Рисунок: Общая блок-схема из нескольких экземпляров отладчика

Несколько важных советов по удаленной отладке
•    Компоненты удаленной отладки Visual Studio 2005 должны быть установлены на удаленном компьютере
•    Нужно ссылаться на удаленный компьютер, используя имя компьютера вместо IP адреса.
•    Файл Web.config для приложения ASP.NET не должен содержать никаких ошибок, и атрибут отладки элемента компиляции должен быть установлен в Истину.
•    Убедитесь, что брандмауэр не блокирует удаленную отладку.
•    Настройки безопасности для сайта должны разрешать комплексную аутентификацию Windows.
•    Убедитесь, что монитор удаленной отладки работает на удаленном сервере. Если Msvsmon.exe не работает, вы получите следующее сообщение об ошибке.

Заключение:

В заключение сделаем краткие выводы. msvsmon – утилита, предоставляющая средство отладки приложения, размещенного на удаленном сервере IIS. Она предоставляет два типа режима аутентификации, Windows и режим без аутентификации. В случае режима аутентификации windows пользователь должен иметь разрешение на доступ к экземпляру удаленного отладчика, но, с другой стороны, режим без аутентификации не требует полномочий доступа.

 

Рисунок: Общая сводка

Надеюсь, данная статья поможет вам освоить удаленную отладку.