Действительно ли возможно отладить веб-приложение ASP.NET, это не запускается из Visual Studio?

Веб-сервер ASP.NET по умолчанию, который запускается из Visual Studio (Казино), является небольшим багги на моей машине разработки, таким образом, мне нравится публиковать к локальному экземпляру IIS на моей dev машине и смотреть на веб-приложение там. Однако я не нахожусь автоматически в "Режиме отладки", когда я запускаю приложение этот путь.

Я знаю, что VS, 2010 имеет "Присоединение для Обработки" функции отладки, но я не уверен точно, как использовать его. Что я должен сделать, чтобы смочь отладить локальный IIS веб-приложение ASP.NET из Visual Studio? Конкретно:

  • Какие настройки я должен изменить в конфигурации моего веб-приложения?
  • Что "Упаковывает/Публикует Настройки", я должен измениться?
  • Есть ли что-нибудь, что я должен изменить в IIS?
  • Действительно ли там что-нибудь является особенным, я должен сделать на экране "Attach to Process"?

Справочная информация: я запускаю Visual Studio 2010 на Windows XP SP3 с IIS 5.1 и.NET 4.0.


Дополнительная информация:

Я должен добавить, что попытался присоединить к aspnet_wp.exe, но когда я перехожу к странице, которую я знаю, имеет точку останова в нем, я получаю следующее сообщение, когда я нависаю над "открытой круговой" точкой останова:

Точка останова не будет в настоящее время поражаться. Никакие символы не были загружены для этого документа.

10
задан Ben McCormack 13 August 2010 в 15:22
поделиться

5 ответов

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

  1. Создайте новую папку для вашего приложения на локальном жестком диске, которая будет использоваться для вашего веб-приложения.
  2. Вручную создайте новый виртуальный каталог в IIS, который указывает на созданную вами папку.
    • Убедитесь, что свойства веб-сайта или виртуального каталога в IIS настроены на использование ASP.NET 4.0, если вы используете веб-приложение .NET 4.0.
  3. В VS 2010 щелкните свой веб-проект правой кнопкой мыши и выберите «Опубликовать». Используйте следующие настройки:
    • Метод публикации: Веб-развертывание
    • URL-адрес службы: http: // localhost
    • Сайт / приложение: Имя веб-сайта IIS / Виртуальный каталог
      • Вам необходимо указать имя веб-сайта IIS, за которым следует имя виртуального каталога, который вы только что указали. Имя веб-сайта по умолчанию обычно просто Веб-сайт по умолчанию . Например, если вы назвали свой виртуальный каталог MySolution.MyProject , вы должны указать Веб-сайт по умолчанию / MySolution.MyProject в качестве сайта / приложения.
    • Отметить как приложение IIS в пункте назначения: я не устанавливаю этот флажок.
    • Оставить лишние файлы в месте назначения (не удалять): в настоящее время я не устанавливаю этот флажок.
  4. В VS 2010 щелкните правой кнопкой мыши свой веб-проект и выберите «Свойства». Используйте следующие настройки:
    • На вкладке Компиляция :
      • Нажмите кнопку «Дополнительные параметры компиляции ...» (я использую VB.NET; в C # он может немного отличаться).
      • Убедитесь, что для параметра «Создать отладочную информацию» установлено значение Полный . (Также есть опция для pdb-only , которую я не пробовал. Это тоже может сработать).
    • На вкладке Интернет :
      • В разделе Серверы выберите Использовать настраиваемый веб-сервер и укажите адрес вашего нового приложения; например: http: // localhost / VirtualDirectory .
      • ПРИМЕЧАНИЕ. Поскольку я не закончил отладку приложения с помощью F5, я не уверен, что мне нужно было делать этот шаг.
    • На вкладке Пакет / публикация в Интернете :
      • У вас должна быть возможность использовать параметр Только файлы, необходимые для запуска этого приложения для Элементы для развертывания ... .
      • Убедитесь, что Исключить сгенерированные символы отладки не отмечен.
        • ПРИМЕЧАНИЕ. В целях безопасности вы, вероятно, не захотите развертывать отладочную информацию в производственной среде без крайней необходимости.

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

  1. Щелкните правой кнопкой мыши свой веб-проект и выберите Опубликовать .
    • Убедитесь, что ваши настройки по-прежнему определены с шага 3 выше.
    • Нажмите кнопку Опубликовать .Это автоматически создаст приложение в соответствии с текущей конфигурацией сборки и опубликует его на указанном веб-хосте.
  2. Перейдите на одну из страниц своего веб-приложения, чтобы убедиться, что приложение запускается.
  3. В VS 2010 щелкните меню Отладка и выберите Присоединить к процессу . Выберите запущенный процесс ASP.NET (в Windows XP это aspnet_wp.exe ) и нажмите Присоединить .
  4. Теперь у вас должна быть возможность добавлять в код точки останова, которые будут срабатывать при переходе к различным страницам веб-приложения из браузера.

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

4
ответ дан 4 December 2019 в 00:59
поделиться

Все, что вам нужно сделать, это использовать присоединение к процессу и указать aspnet_wp.exe. Это может быть w3wp.exe в зависимости от ОС. Раньше у меня был макрос для этого, но он перестал работать после VS2008.

5
ответ дан 4 December 2019 в 00:59
поделиться

Я никогда не делал никаких специальных настроек, и гаджет attach to process работает очень хорошо. Просто прикрепите его к процессу aspnet_wp.exe и все готово.

0
ответ дан 4 December 2019 в 00:59
поделиться

Я также разрабатываю свои веб-приложения на локальном IIS. Для локальной отладки IIS у меня всегда работал F5.

Если по какой-либо причине вы должны использовать присоединение к процессу, убедитесь, что вы подключаетесь к локальному процессу или что удаленный отладчик работает на удаленной машине. Приложение необходимо заранее запустить, например, запросив страницу в браузере. Используйте iisapp (IIS 5.1, 6.0) или appcmd list wp (IIS 7+), чтобы определить, какой идентификатор процесса принадлежит какому пулу приложений (необходимо только при наличии 2+ пулов приложений, действительно), а затем приступайте к работе с Присоединить к процессу .

1
ответ дан 4 December 2019 в 00:59
поделиться

Щелкните правой кнопкой мыши свой веб-проект в VS, перейдите к параметрам запуска и выберите «Использовать настраиваемый сервер», вставив локальный адрес вашего сайта в IIS.

Нажмите F5, запустится в IIS.

1
ответ дан 4 December 2019 в 00:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: