Iis вкладка отладка приложений


Содержание

Как подключить отладчик к IIS вместо ASP.NET Development Server?

У меня есть сайт ASP.NET, и когда я нажимаю F5, он автоматически присоединяется к серверу разработки ASP.NET, как я могу приложить к рабочему процессу IIS, когда я нажимаю F5?

откройте свойства проекта, перейдите на веб-вкладку и выберите вариант для IIS.

Это фактически запускает экземпляр приложения в IIS и присоединяет отладчик. Если вы хотите только подключиться к существующему экземпляру IIS, выберите «Привязать к процессу» в меню отладки.

Отладка- > Присоединить к процессу.

Выберите aspnet_wp.exe процесс из списка.

Если вы используете IIS > версия 5, процесс будет w3wp.exe, и он будет один для каждого пула приложений (так что если вы не узнайте, какой пул приложений вы нажмете, вам нужно будет прикрепить к ним все).

Отладка → Привязать к процессу из меню VS.

Чтобы узнать, к какому процессу w3wp.exe можно подключиться, вы можете использовать следующую команду на сервере 2008

В то время как в Windows 2003 это

Однако, если у вас есть доступ к диспетчеру задач (taskmgr.exe), вы можете видеть там непосредственно имя процесса вместе с идентификатором процесса, и в большинстве случаев столбец «имя пользователя» процесса будет таким же как имя пула приложений (конечно, вы должны установить, чтобы эти столбцы были видны в диспетчере задач, чтобы просмотреть информацию).

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

Также, если приложение является «Web Garden» (у которого более одного w3wp.exe), то даже после присоединения к правильному процессу все еще нет гарантии, что точки останова будут удалены, поскольку трафик на сайт может быть направленных на другой процесс.

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

Если вы хотите подключиться к удаленному процессу, вот лучшая практика:

  • Убедитесь, что брандмауэр не блокируется, открыв соответствующие порты или полностью отключив его (просто не забудьте включить его, когда закончите).
  • У вас должна быть учетная запись домена Windows с правами администратора на удаленном компьютере или иметь учетную запись — с тем же именем пользователя и паролем, что и локальный компьютер, на котором запущен VS — на удаленном компьютере.
  • На машине, на которой установлен VS, перейдите к (путь установки Visual Studio)\Microsoft Visual Studio (номер текущей версии)\Common7\IDE\Удаленный отладчик (версия удаленной машины) и скопируйте и вставьте эту папку на удаленную машину или обмениваться этой папкой, чтобы она была доступна с удаленного компьютера.
  • На удаленном компьютере войдите как тот же пользователь, что и локальный компьютер (см. шаг 2), оттуда перейдите к скопированной или общей папке на шаге 3 и щелкните правой кнопкой мыши на «msvsmon.exe» и в контекстном меню выберите «Запуск от имени администратора».
  • Удаленный монитор должен запуститься и утверждать, что он запустил сервер, обычно по имени (пользователь) @(удаленная машина) или любому другому имени.
  • В VS выберите Debug → Attach To Process из меню, оставьте транспорт на «Default», а для «Qualifier Name» введите имя с шага 5.
    Если все будет правильно, это вызовет список процессов на удаленной машине.

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

Отладка приложений ASP.NET Core, работающих в IIS

Есть ли способ отладки веб-приложения ASP.NET Core при работе под управлением IIS?

Я работаю под IIS, потому что мне нужно, чтобы он был доступен через SSL на порту 443.

6 ответов

  1. Опубликовать веб-приложение с настройкой Debug
  2. Настройте веб-сайт на IIS, как описано здесь
  3. Откройте веб-сайт в браузере, чтобы запустить процесс dotnet
  4. В Visual Studio откройте Debug -> Attach to Process или нажмите Ctrl + Alt + P
  5. Убедитесь, что в строке «Присоединить к» у вас есть «Автоматически» или «Управляемый (v4.6, v4.5, v4.0)». Если нет, нажмите select и выберите «Автоматически определять тип кода для отладки»
  6. Установите флажок «Показывать процессы всех пользователей»
  7. Выберите dotnet.exe и нажмите Прикрепить

Примечание. Если вы видите несколько процессов dnx.exe, выберите один из них с пользователем IIS в столбце username. По умолчанию это «IIS APPPOOL <имя вашего пула приложений>»


PS Если вы видите процесс dotnet с пустым именем пользователя, запустите Visual Studio от имени администратора.

ОБНОВИТЬ

С ASP.Net Core 1.0.0 вы должны присоединиться к «». Например, если у вашего проекта есть имя «Web», вы должны присоединиться к «Web.exe». Также вы можете найти имя руководителя в следующем разделе web.config

Это действительно необходимо? Приложения ASP.NET Core запускаются как внешний процесс для IIS (с использованием dotnet.exe), поэтому отладка с помощью IIS на самом деле ничего не дает. Бэкэнд-приложение получает запросы по обычному HTTP.

Для получения дополнительной информации о том, как фактический хостинг IIS работает с ASP.NET Core, вы можете ознакомиться с этой записью в блоге: http://weblog.west-wind.com/posts/2020/Jun/06/Publishing-and-Running- Сеть САШ-Core-Applications-с-IIS

Visual Studio в настоящее время не поддерживает отладку под полным IIS, и, как я слышал, это не то, что планируется. Microsoft поддерживает работу с IIS Express, и вы можете настроить сертификат для IIS Express.

В проекте ASP.NET Core в опциях Debug Project есть опция Enable SSL, которую вы можете включить. IIS Express создаст локальный сертификат и позволит вам отлаживать ваше приложение с использованием SSL.

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

Преимущество заключается в том, что вы можете использовать веб-сайт снаружи, используя настоящее имя хоста. Представьте себе, что приложение для Android пытается подключиться к localhost для отладки основного веб-API-интерфейса asp.net. боль в настройке, если вы не можете использовать реальный физический IP-адрес и подключиться к чему-либо, работающему на iis. Так же, как до. Все можно сделать, но это не значит, что если оно новое, оно автоматически становится более практичным. А отсутствие старой опции debug iis — это шаг назад с точки зрения производительности.

Сценарий: отладка основного веб-приложения ASP.NET, работающего на IIS Local.

Предварительное условие : добавьте «Поддержка IIS времени разработки» в существующую установку Visual Studio. Перейдите по следующей ссылке: https://blogs.msdn.microsoft.com/webdev/2020/07/13/development-time-iis-support-for-asp-net-core-applications/

1. В Visual Studio 2020 создайте «Базовое веб-приложение ASP.NET» с именем «MvcMovie».

1.1. Открыть проект «MvcMovie» Свойства .

1.1.2. Перейдите на вкладку « Отладка » и установите (если нет):

1.1.2.1. «Профиль:» «MvcMovie».

1.1.2.2. «Запуск:» «IIS»

1.1.2.3. (проверено) «Запустить браузер:» » https: // localhost «

1.1.2.4. «Переменные среды:» | Название: «ASPNETCORE_ENVIRONMENT» | Значение: «Развитие» |

1.1.2.5. «Настройки веб-сервера»

1.1.2.5.2. (отмечено) «Включить анонимную аутентификацию»

2. В «IIS Local» менеджер «Добавить сайт» с именем «AspNetCoreMvcMovie».

2.1. Установите «Физический путь» с папкой проекта (НЕ решения) (в нашем случае «D: \ ASP-NET-Core \ ASP-NET-Core-Projects \ MvcMovie \ MvcMovie»).

2.2. Привязка «Тип»: «https».

2,3. «Сертификат SSL»: «Сертификат разработки IIS Express».

2.5. В «Пулы приложений» найдите по имени «AspNetCoreMvcMovie» пул.

2.5.1. В поле «Редактировать пул приложений» установите для «.NET CLR version» значение «No Managed Code».

3. Установите VS 2020 повышенных разрешений.

3.1. Если у нас есть такой массаж: «Microsoft Visual Studio»: «Для этой задачи требуется, чтобы у приложения были повышенные разрешения», следуйте инструкциям по устранению неполадок «(Метод 2) Устранение неполадок совместимости» по следующей ссылке: https://social.technet.microsoft.com. /wiki/contents/articles/46441.visual-studio-2020-this-task-requires-the-application-to-have-elevated-permissions.aspx

3.2 После выполнения этого метода (Метод 2) начнется VS-2020.

3.3. Запустить (в режиме «Отладка») приложение «MvcMovie» с IIS-профилем (который настроен для работы на IIS Local . . НЕ IIS Express . ). В нашем случае профиль задается с именем текущего приложения («MvcMovie») в «Шаге 1».

3.4. Дождитесь запуска приложения в браузере.

3.5. Закрыть приложение (закрыть веб-браузер).


3,6. Перейдите в окно устранения проблем совместимости и нажмите «Далее».

3.6.1. Затем нажмите «-> Да, сохраните эти настройки для этой программы».

3.6.2. После того, как «Устранение неполадок» завершает «Сохранение настроек», мы должны увидеть окно «Устранение неполадок завершено». В окне «Устранение неполадок завершено», необходимо просмотреть: «Обнаружены проблемы» -> «Несовместимая программа» -> «Исправлено». Затем нажмите «-> Закрыть средство устранения неполадок».

4. Начиная с VS-2020, снова запустите (в режиме «Отладка») приложение «MvcMovie» с IIS-профилем (в нашем случае с именем «MvcMovie»).

ssl debug Отладка основных приложений ASP.NET, работающих в IIS

iis debug (4)

Есть ли способ отладить веб-приложение ASP.NET Core во время работы в IIS?

Я работаю под IIS, потому что мне нужно, чтобы он был доступен через SSL на порту 443.

Это действительно необходимо? Основные приложения ASP.NET запускаются как внешний процесс для IIS (с использованием dotnet.exe), поэтому отладки через IIS действительно ничего не получается. Бэкэнд-приложение получает запросы по простому HTTP.

Для получения дополнительной информации о том, как реальный хостинг IIS работает с ASP.NET Core, вы можете проверить это сообщение в блоге: http://weblog.west-wind.com/posts/2020/Jun/06/Publishing-and-Running-ASPNET-Core-Applications-with-IIS

Visual Studio в настоящее время не поддерживает отладку под полным IIS, и из того, что я слышал, это не то, что планируется. Microsoft поддерживает работу с IIS Express, и вы можете настроить сертификат для IIS Express.

В проекте ASP.NET Core в параметрах Debug Project есть опция Включить SSL, которую вы можете включить. IIS Express создаст локальный сертификат и позволит вам отлаживать ваше приложение с помощью SSL.

Преимущество такого подхода заключается в том, что он просто работает, нажав F5 — не требуется ручное вложение.

Преимущество заключается в том, что вы можете фактически использовать веб-сайт за пределами, используя фактическое имя хоста. Представьте, что приложение android пытается подключиться к localhost для отладки основного веб-сервиса asp.net. боль в настройке, если вы не можете фактически использовать фактический физический IP-адрес и подключиться к чему-то, работающему на iis. Как прежде. Все можно сделать, но это не значит, что это новое, это автоматически более практично. И отсутствие старой опции debug iis — шаг назад в плане производительности.

  1. Публиковать веб-приложение с конфигурацией отладки
  2. Настройте веб-сайт в IIS, как описано here
  3. Откройте веб-сайт в браузере, чтобы начать процесс dotnet
  4. В Visual Studio откройте Debug -> Attach to Process или нажмите Ctrl + Alt + P
  5. Убедитесь, что в строке «Прикрепить к» есть «Автоматический» или «Управляемый (v4.6, v4.5, v4.0)». Если нет, нажмите select и выберите «Автоматически определять тип кода для отладки»
  6. Проверьте «Показывать процессы от всех пользователей»
  7. Выберите dotnet.exe и нажмите Прикрепить

Примечание. Если вы видите несколько процессов dnx.exe, выберите один из пользователей IIS в имени пользователя столбца. По умолчанию это «IIS APPPOOL <имя вашего пула приложений]»

PS Если вы видите процесс dotnet с пустым именем пользователя, запустите Visual Studio в качестве администратора

ОБНОВИТЬ

С ASP.Net Core 1.0.0 вы должны подключиться к «». Например, если у проекта есть имя «Веб», вы должны подключиться к «Web.exe». Также вы можете найти имя исполнителя в следующем разделе web.config

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

Обратное прокси-решение Looooooka работало для меня, но для его решения потребовалась определенная работа.

1.) Добавьте эту строку в Startup.cs.

Убедитесь, что вы положили его перед строкой, в которой говорится: «app.UseStaticFiles ();»


2.) Установите «URL Rewrite v2» и «Routing Request Request»,

3.) Добавьте папку на веб-сайт IIS (/ core) и создайте файл web.config внутри папки следующим образом:

4.) Откройте свойства проекта в визуальной студии и перейдите на вкладку отладки. Измените URL-адрес «Запуск браузера» на ваш URL-адрес IIS.

Iis вкладка <отладка приложений>

Опубликовано: Июнь 2020

Самая актуальная документация по Visual Studio 2020: Документация по Visual Studio 2020.

Для включения отладки необходимо включить ее на странице Свойства проекта и в файле web.config приложения.

Отображаемые диалоговые окна и команды меню могут отличаться от описанных в справке в зависимости от текущих параметров или выпуска. Чтобы изменить параметры, выберите в меню Сервис пункт Импорт и экспорт параметров . Дополнительные сведения см. в статье Настройка параметров разработки в Visual Studio.

Включение отладки ASP.NET в свойствах проекта (Visual Basic/C#)

В окне Обозреватель решенийправой кнопкой мыши щелкните имя веб-проекта и выберите пункт Свойства.

На странице свойств проекта перейдите на вкладку Веб .

В окне Отладчикиустановите флажок ASP.NET .

Включение отладки в файле web.config

Откройте файл web.config с использованием любого стандартного текстового редактора или анализатора XML.

Примечание

Удаленный доступ к этому файлу с помощью браузера невозможен. Из соображений безопасности настройка служб Microsoft IIS ASP.NET осуществляется ASP.NET таким образом, чтобы предотвратить прямой доступ к файлам Web.config с помощью браузеров. При попытке доступа к файлу конфигурации с помощью браузера будет выдана ошибка доступа HTTP 403.

Файл Web.config — это XML-файл, поэтому он содержит вложенные разделы, помеченные тегами. Найдите элемент configuration/system.web/compilation . Если элемент compilation не существует, создайте его.

Если элемент compilation не содержит атрибут debug , добавьте этот атрибут к элементу.

Убедитесь в том, что значение атрибута debug равно true .

Файл Web.config должен выглядеть, как следующий пример. Обратите внимание, что между элементами system.web и configuration могут быть другие разделы

разделы элементов между элементами system.web и configuration

разделы элементов между элементами system.web и compilation

Элемент compilation может содержать другие элементы или атрибуты

Iis вкладка <отладка приложений>

23634 просмотра

8 ответа

198 Репутация автора

Есть ли способ отладки веб-приложения ASP.NET Core при работе под управлением IIS?

Я работаю под IIS, потому что мне нужно, чтобы он был доступен через SSL на порту 443.

Ответы (8)

64 плюса


1370 Репутация автора

Примечание. Если вы видите несколько процессов dnx.exe, выберите один из них с пользователем IIS в столбце username. По умолчанию это «IIS APPPOOL <имя вашего пула приложений>»

PS Если вы видите процесс dotnet с пустым именем пользователя, запустите Visual Studio от имени администратора.

ОБНОВИТЬ

С ASP.Net Core 1.0.0 вы должны присоединиться к «». Например, если у вашего проекта есть имя «Web», вы должны присоединиться к «Web.exe». Также вы можете найти имя руководителя в следующем разделе web.config

Автор: Vitaly Размещён: 06.04.2020 01:19

5 плюса

11400 Репутация автора

Это действительно необходимо? Приложения ASP.NET Core запускаются как внешний процесс для IIS (с использованием dotnet.exe), поэтому отладка с помощью IIS на самом деле ничего не дает. Бэкэнд-приложение получает запросы по обычному HTTP.

Для получения дополнительной информации о том, как фактический хостинг IIS работает с ASP.NET Core, вы можете ознакомиться с этим сообщением в блоге: http://weblog.west-wind.com/posts/2020/Jun/06/Publishing-and-Running- Сеть САШ-Core-Applications-с-IIS

Visual Studio в настоящее время не поддерживает отладку под полным IIS, и, как я слышал, это не то, что планируется. Microsoft поддерживает работу с IIS Express, и вы можете настроить сертификат для IIS Express.

В проекте ASP.NET Core в опциях Debug Project есть опция Enable SSL, которую вы можете включить. IIS Express создаст локальный сертификат и позволит вам отлаживать ваше приложение с использованием SSL.

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

6 плюса

79 Репутация автора

Преимущество заключается в том, что вы можете использовать веб-сайт снаружи, используя фактическое имя хоста. Представьте себе, что приложение для Android пытается подключиться к localhost для отладки основного веб-API-интерфейса asp.net. боль в настройке, если вы не можете использовать реальный физический IP-адрес и подключиться к чему-либо, работающему на iis Так же, как до. Все можно сделать, но это не значит, что если оно новое, оно автоматически становится более практичным. А отсутствие старой опции debug iis — это шаг назад с точки зрения производительности.

плюса

79 Репутация автора

Просто прошёл историю и наткнулся на эту. На случай, если кто-нибудь придет к этому вопросу . решение для меня оказалось довольно простым. Если вы используете аутентификацию в своем основном приложении .net, просто убедитесь, что оно использует базовую аутентификацию с использованием HTTP (для отладочной части). Затем в IIS просто используйте Url Rewrite, чтобы настроить обратный прокси-сервер для вашего основного ядра http: // localhost: someport .net. Вот и все. Задача решена. Возможно, перезапись URL будет поддерживать https в ближайшее время, и в этом случае базовая аутентификация с использованием HTTP может также использоваться для целей отладки. Что было бы здорово. Но пока эта установка решила все мои проблемы.

плюса

101 Репутация автора

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

Решение обратного прокси-сервера Looooooka сработало для меня, но потребовалась некоторая работа, чтобы понять это.

1.) Добавьте эту строку в Startup.cs.

Убедитесь, что вы поместили его ДО строки, которая говорит «app.UseStaticFiles ();»

2.) Установите «URL Rewrite v2» и «Маршрутизация запросов приложений»

3.) Добавьте папку на веб-сайт IIS (/ core) и создайте файл web.config внутри папки следующим образом:

4.) Откройте свойства проекта в Visual Studio и перейдите на вкладку отладки. Измените URL «Запустить браузер» на свой URL IIS.

3 плюса

349 Репутация автора

Сценарий: отладка основного веб-приложения ASP.NET, работающего на IIS Local.


Предварительное условие : добавьте «Поддержка IIS времени разработки» в существующую установку Visual Studio. Перейдите по следующей ссылке: https://blogs.msdn.microsoft.com/webdev/2020/07/13/development-time-iis-support-for-asp-net-core-applications/

1. В Visual Studio 2020 создайте «Базовое веб-приложение ASP.NET» с именем «MvcMovie».

1.1. Открыть проект «MvcMovie» Свойства .

1.1.2. Перейдите на вкладку « Отладка » и установите (если нет):

1.1.2.1. «Профиль:» «MvcMovie».

1.1.2.2. «Запуск:» «IIS»

1.1.2.3. (проверено) «Запустить браузер:» » https: // localhost «

1.1.2.4. «Переменные среды:» | Название: «ASPNETCORE_ENVIRONMENT» | Значение: «Развитие» |

1.1.2.5. «Настройки веб-сервера»

1.1.2.5.2. (отмечено) «Включить анонимную аутентификацию»

2. В «IIS Local» менеджер «Добавить сайт» с именем «AspNetCoreMvcMovie».

2.1. Установите «Физический путь» с папкой проекта (НЕ решения) (в нашем случае «D: \ ASP-NET-Core \ ASP-NET-Core-Projects \ MvcMovie \ MvcMovie»).

2.2. Привязка «Тип»: «https».

2,3. «Сертификат SSL»: «Сертификат разработки IIS Express».

2.5. В «Пулы приложений» найдите по имени «AspNetCoreMvcMovie» пул.

2.5.1. В поле «Изменить пул приложений» установите для «.NET CLR version» значение «No Managed Code».

3. Установите VS 2020 повышенных разрешений.

3.1. Если у нас есть такой массаж: «Microsoft Visual Studio»: «Для этой задачи требуется, чтобы у приложения были повышенные разрешения», следуйте инструкциям по устранению неполадок «(Метод 2) Устранение неполадок совместимости» по следующей ссылке: https://social.technet.microsoft.com. /wiki/contents/articles/46441.visual-studio-2020-this-task-requires-the-application-to-have-elevated-permissions.aspx

3.2 После выполнения этого метода (Метод 2) начнется VS-2020.

3.3. Запустить (в режиме «Отладка») приложение «MvcMovie» с IIS-профилем (который настроен для работы на IIS Local . . НЕ IIS Express . ). В нашем случае профиль устанавливается с именем текущего приложения («MvcMovie») в «Шаге 1».

3.4. Дождитесь запуска приложения в браузере.

3.5. Закрыть приложение (закрыть веб-браузер).

3,6. Перейдите в окно устранения проблем совместимости и нажмите «Далее».

3.6.1. Затем нажмите «-> Да, сохраните эти настройки для этой программы».

3.6.2. После того, как «Устранение проблем» завершит «Сохранение настроек», мы должны увидеть окно «Устранение неполадок завершено». В окне «Устранение неполадок завершено», необходимо просмотреть: «Обнаружены проблемы» -> «Несовместимая программа» -> «Исправлено». Затем нажмите «-> Закрыть средство устранения неполадок».

4. Начиная с VS-2020, снова запустите (в режиме «Отладка») приложение «MvcMovie» с IIS-профилем (в нашем случае с именем «MvcMovie»).

Автор: Ted Размещён: 21.08.2020 03:00

плюса

12670 Репутация автора

У меня возникла та же проблема для проекта ASP.NET Core 2.2 Web API, которую я хотел запустить с IIS.

launchsettings.json

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


Присоединить к процессу

Присоединить к процессу (Ctrl-Alt-P) + найти процесс w3wp.exe + выбрать тот, который имеет имя пользователя = IIS APPPOOL \:

Автор: Alexei Размещён: 30.12.2020 02:37

плюса

105 Репутация автора

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

Основные части отладки в IIS:

  • Правильная настройка IIS на вашем устройстве. машина
  • Установка SSL-сертификата для вашего сайта IIS
  • Добавление поддержки IIS времени разработки из установщика Visual Studio
  • Установка как минимум .NET Core SDK 2.2
  • Настройка профиля запуска в Visual Studio для запуска браузера с помощью IIS.

.NET Core 2.2 необходим для запуска вашего сайта в рамках процесса IIS.

Отладка приложений ASP.NET MVC 5

ASP.NET — ASP.NET MVC 5 — Отладка приложений ASP.NET MVC 5

Отладка приложения ASP.NET MVC может быть организована тем же способом, что и отладка приложения ASP.NET Web Forms. Отладчик Visual Studio является мощным и гибким инструментом, обладающим множеством средств и возможностей. В этой статье мы рассмотрим его лишь поверхностно, показав как настраивать отладчик и выполнять различные действия по отладке проекта MVC.

Для демонстрации использования отладчика мы создадим новый проект ASP.NET MVC с применением шаблона MVC, просто чтобы вы увидели, как устанавливается стандартное содержимое и конфигурация, а также ознакомились с результатом применения стандартной темы к представлениям. Новый проект назван Web Applicaion 2, как показано на рисунке ниже:

Щелкните на кнопке ОК. Среда Visual Studio создаст проект и добавит стандартные пакеты, файлы и папки, которые включают шаблон MVC. На рисунке ниже демонстрируется применение файлов и настроек добавленных в проект:

Здесь присутствуют элементы-заполнители для названия приложения и бренда и несколько указателей на документацию по MVC, NuGet и веб-хостинг. В верхней части экрана расположена панель навигации, а компоновка обладает рядом возможностей чувствительного дизайна. Чтобы увидеть создаваемый ими эффект, измените ширину окна.

В качестве части первоначального содержимого проекта среда Visual Studio создала контроллер Home, но мы заменим добавленный ею код тем, который приведен ниже:

Среда Visual Studio также создала файл представления Views/Home/Index.cshtml, как часть настройки проекта. Нас не интересует его стандартное содержимое, поэтому мы заменяем его разметкой, показанной в примере ниже:

Последний подготовительный шаг, который понадобится предпринять — добавить стиль в файл /Content/Site.css и изменить один из существующих стилей. Файл Site.css создан средой Visual Studio в виде части шаблона проекта MVC и является стандартным местом размещения стилей CSS для приложения:

Запуск отладчика Visual Studio

Среда Visual Studio подготавливает новые проекты для отладки автоматически, однако полезно разобраться, каким образом можно изменять конфигурацию отладки. Важная настройка, связанная с отладкой, находится в файле Web.config, расположенном в корневой папке проекта, внутри элемента system.web:

При выполнении приложения на сервере IIS производится много работ по компиляции проекта MVC Framework, поэтому необходимо удостовериться, что во время процесса разработки атрибут debug дескриптора compilation установлен в true. Это гарантирует возможность отладчику взаимодействовать с файлами классов, получаемыми при компиляции по требованию.

В дополнение к файлу Web.config понадобится обеспечить включение средой Visual Studio отладочной информации в создаваемые ею файлы классов. Это не является критичным, но может вызвать проблемы, если разные настройки отладки не синхронизированы. Удостоверьтесь, что в панели инструментов Visual Studio выбрана конфигурация Debug (Отладочная), как показано на рисунке ниже:

Чтобы запустить отладку приложения MVC Framework, выберите пункт Start Debugging (Начать отладку) в меню Debug (Отладка) среды Visual Studio или щелкните на стрелке зеленого цвета в панели инструментов Visual Studio (на рисунке она находится слева от названия браузера, который будет использоваться для отображения приложения — в данном случае это Google Chrome).

Если при запуске отладчика атрибут debug в файле Web.config установлен в false, среда Visual Studio отобразит диалоговое окно, показанное на рисунке ниже. Выберите переключатель Modify the Web.config file to enable debugging (Модифицировать файл Web.config для включения отладки), щелкните на кнопке ОК и отладчик запустится:

В этот момент приложение запустится и отобразится в новом окне браузера. Отладчик присоединится к приложению, но вы не заметите никакой разницы до тех пор, пока не произойдет останов при отладке (что это значит — объясняется в следующем разделе). Чтобы остановить отладчик, выберите пункт Stop Debugging (Остановить отладку) в меню Debug среды Visual Studio или закройте окно браузера.

Останов отладчика Visual Studio

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

Использование точек останова

— это инструкция, которая сообщает отладчику о необходимости остановить выполнение приложения и передать управление программисту. После этого можно проинспектировать состояние приложения, посмотреть, что произошло, и (необязательно) возобновить выполнение.

Чтобы создать точку останова, щелкните правой кнопкой мыши на операторе кода и выберите в контекстном меню пункт Breakpoint Insert Breakpoint (Точка останова Вставить точку останова). В качестве демонстрации применим точку останова к первому оператору в методе действия Index() контроллера Home; на полях редактора кода напротив оператора появится точка красного цвета:


Для просмотра точки останова в работе запустите отладчик. Приложение будет выполняться вплоть до достижения оператора, к которому была применена точка останова, где отладчик приостановит работу приложения и передаст управление вам. Среда Visual Studio подсвечивает точку, в которой выполнение было остановлено, стрелкой желтого цвета, как показано на рисунке:

Точка останова активизируется, только когда выполняется ассоциированный с ней оператор. Рассматриваемый пример точки останова достигается сразу после запуска приложения, поскольку она находится внутри метода действия, который вызывается при получении запроса к стандартному URL. Если поместить точку останова внутрь другого метода действия понадобится с помощью браузера запросить URI, ассоциированный с этим методом. Это может означать работу с приложением так, как это делает пользователь, или навигацию непосредственно к URI в окне браузера.

Получив контроль над выполнением приложения, вы можете перейти на следующий оператор, зайти внутрь других методов и в целом исследовать состояние приложения. Все это можно делать с помощью кнопок панели инструментов или пунктов меню Debug среды Visual Studio. Вдобавок к предоставлению контроля над выполнением приложении среда Visual Studio предлагает множество полезной информации о состоянии приложения; в действительности информации настолько много, что в этой статье удастся рассмотреть только самые базовые сведения.

Просмотр значений данных в редакторе кода

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

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

Выполнение операторов в методе действия Index() не достигло точки, где переменной result присваивается значение, поэтому Visual Studio показывает стандартное значение, равное 0 для типа int. Выберите в меню Debug пункт Step Over (Выполнить без захода) или нажмите , чтобы переместить точку выполнения к оператору, который определяет свойство ViewBag.Message, и снова наведите курсор мыши на переменную result. Мы выполнили оператор, присваивающий значение переменной result, и эффект можно видеть на рисунке:

Описанное средство применяется в начале процесса отслеживания ошибки, поскольку он позволяет немедленно понять, что происходит внутри приложения; оно особенно полезно при выявлении значений null, которые указывают на то, что переменной не было присвоено значение (распространенная причина многих ошибок).

Вы наверняка заметили во всплывающем окне значок с изображением канцелярской кнопки справа от значения. Щелчок на нем приводит к тому, что всплывающее окно становится постоянным, и будет отражать изменения значения переменной — это позволяет отслеживать одну или более переменных и видеть, когда они изменяются и каковы их новые значения.

Просмотр состояния приложения в окне отладчика

Среда Visual Studio предоставляет несколько разных окон, которые можно использовать для получения информации о приложении, пока выполнение приостановлено в точке останова. Полный список доступных окон находится в меню Debug Windows (Отладка Окна), а двумя наиболее часто применяемыми окнами являются Locals (Локальные) и Call Stack (Стек вызовов). Окно Locals автоматически отображает значения всех переменных в текущей области видимости, как показано на рисунке ниже. Это обеспечивает всеобъемлющее представление переменных, которое наверняка будет интересным разработчику:

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

Набор переменных, отображаемый в окне Locals, изменяется по мере прохождения по приложению, но если необходимо видеть какую-то переменную постоянно, следует щелкнуть правой кнопкой мыши на соответствующем элементе в окне Locals и выбрать в контекстном меню пункт Add Watch (Добавить наблюдение). Элементы в окне Watch (Наблюдение) не изменяются по мере выполнения операторов в приложении, предоставляя фиксированную контрольную точку.

Окно Call Stack отображает последовательность вызовов, которая привела к выполнению текущего оператора. Это оказывается очень полезным при попытке выявления причин странного поведения, поскольку можно раскрутить стек вызовов и исследовать обстоятельства, приведшие к активизации точки останова. (Мы не приводим здесь экранный снимок с окном Call Stack, поскольку нашему простому приложению не хватает глубины вызовов, чтобы предоставить сколько-нибудь полезную информацию в этом окне. Однако мы рекомендуем исследовать как упомянутое, так и другие окна Visual Studio, чтобы иметь понятие о том, какие сведения способен предоставлять отладчик.)

Точки останова можно добавлять и в представления. Например, они очень полезны при анализе значений свойств, относящихся к модели представления. Добавление точки останова в представление осуществляется точно так же, как в файл кода: щелкните правой кнопкой мыши на интересующем операторе Razor и выберите в контекстном меню пункт Breakpoint Insert Breakpoint.

Остановы из-за исключений

Необработанные исключения — это явление, присущее процессу разработки. Одна из причин проведения модульного и интеграционного тестирования в проектах — сведение к минимуму вероятности возникновения таких исключений в производственных версиях. В качестве помощи в поиске и устранении причин возникновения необработанных исключений, отладчик Visual Studio будет автоматически останавливаться, когда встретит такое исключение.

К останову отладчика приводят только необработанные исключения. Исключение становится обработанным, если оно было перехвачено и обработано в блоке try. catch. Обработанные исключения представляют собой полезный инструмент в программировании. Они используются для моделирования сценария, при котором метод не может завершить свою задачу и должен уведомить об этом вызывающий код. Необработанные исключения нежелательны, т.к. они представляют непредвиденные условия и в общем случае переносят пользователя на страницу ошибки.

Для демонстрации останова по исключению мы внесли небольшое изменение в метод действия Index() контроллера Home, как показано в примере ниже:

Мы изменили значение переменной secondVal на 0, что приведет к генерации исключения в операторе, в котором производится деление firstVal на secondVal. Мы также удалили точку останова из метода действия Index(), для чего щелкнули правой кнопкой мыши на значке точки останова, расположенном на полях редактора кода, и выбрали в контекстном меню пункт Delete Breakpoint (Удалить точку останова).

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

Использование средства Edit and Continue

Одно из интересных средств отладки Visual Studio называется Edit and Continue (Отредактировать и продолжить). Когда отладчик останавливается, вы можете отредактировать код и продолжить отладку. Среда Visual Studio перекомпилирует приложение и воссоздаст состояние приложения на момент останова отладки.

Включение средства Edit and Continue

Средство Edit and Continue должно быть включено в двух местах:

В разделе Edit and Continue параметров Debugging (Отладка) диалогового окна Options (Параметры) (для его открытия выберите пункт Options в меню Tools среды Visual Studio). Удостоверьтесь, что флажок Enable Edit and Continue (Включить средство Edit and Continue) отмечен, как показано на рисунке ниже:

В окне свойств проекта (для его открытия выберите пункт MyProject Properties (Свойства MyProject) в меню Project среды Visual Studio) , щелкните на разделе Web и удостоверьтесь, что флажок Enable Edit and Continue отмечен, как показано на рисунке ниже:

Внесение модификаций в проект

Со средством Edit and Continue связаны кое-какие требования. Существуют условия при которых оно работать не будет. Одно из таких условий присутствует в методе действия Index() класса HomeController: использование динамических объектов. Чтобы обойти это, мы закомментируем строку кода в классе HomeController в которой применяется объект ViewBag, как показано в примере ниже:

В представление Index.cshtml понадобится внести соответствующее изменение:

Демонстрация работы средства Edit and Continue

Теперь все готово для демонстрации работы средства Edit and Continue. Начните с выбора пункта Start Debugging в меню Debug. Приложение запустится с присоединенным отладчиком, и будет выполняться вплоть до достижения строки в методе Index(), где производится простое вычисление. Значением второго параметра является 0, поэтому генерируется исключение. В этой точке отладчик останавливает выполнение и отображается вспомогательное всплывающее окно исключения (подобно показанному ранее).


Щелкните на ссылке Enable editing (Включить редактирование) во вспомогательном всплывающем окне исключения. В редакторе кода измените выражение, которое вычисляет значение переменной result, следующим образом:

Ссылка на переменную secondVal была удалена, а вместо нее введено числовое литеральное значение 2. Теперь выберите пункт Continue (Продолжить) в меню Debug среды Visual Studio, чтобы возобновить выполнение приложения. Новое значение используется для получения значения для переменной result, давая вывод, представленный на рисунке ниже:

Потратьте некоторое время на обдумывание того, что здесь произошло. Мы запустили приложение, содержащее ошибку — попытку деления на ноль. Отладчик обнаружил исключение и остановил выполнение программы. Мы отредактировали код и затем сообщили отладчику о необходимости продолжить выполнение. В этой точке среда Visual Studio перекомпилировала приложение, воссоздала состояния и продолжила выполнение обычным образом, используя новое значение.

Браузер получает визуализированный результат, который отражает это новое значение. Без средства Edit and Continue пришлось бы остановить приложение, внести изменение, скомпилировать приложение и перезапустить отладчик. Затем понадобилось бы повторить в браузере все шаги, которые были проделаны до момента останова отладчика. Наиболее важным может оказаться именно устранение этой необходимости в последнем действии. Воспроизведение сложных ошибок часто требует проведения множества шагов, поэтому возможность тестирования потенциальных исправлений без постоянного повторения таких шагов экономит время и усилия программиста.

Вопрос по asp.net, debugging &#8211 Как подключить отладчик к IIS вместо ASP.NET Development Server?

У меня есть веб-сайт ASP.NET, и когда я нажимаю клавишу F5, он автоматически подключается к серверу разработки ASP.NET, как вместо этого присоединиться к рабочему процессу IIS, когда я нажимаю клавишу F5?

перейдите в свойства веб-приложения. Выберите «Параметры запуска » раздел и изменить с «Использовать веб-сервер по умолчанию » к «использовать пользовательский сервер «, Войти «HTTP: // локальный» в базовом URL.

(предполагает VS 2008)

откройте свойства проекта, перейдите на веб-вкладку и выберите опцию для IIS.

Это фактически запускает экземпляр приложения в IIS и присоединяет отладчик. Если вы хотите подключиться только к существующему экземпляру IIS, выберите «присоединить к процессу» в меню отладки.

Отладка -> Присоединить к процессу из меню VS.

Чтобы узнать, к какому процессу w3wp.exe подключиться, вы можете использовать следующую команду на сервере 2008

В то время как на Windows 2003 это

Для получения дополнительной информации см.PID пула приложений IIS.

Однако, если у вас есть доступ к диспетчеру задач (taskmgr.exe), вы можете увидеть там непосредственно имя процесса вместе с идентификатором процесса, и в большинстве случаев «имя пользователя» Столбец процесса будет таким же, как имя пула приложений (конечно, вы должны установить эти столбцы так, чтобы они отображались в диспетчере задач для просмотра информации).

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

Также, если приложение «Веб-Сад » (в котором имеется более одного файла w3wp.exe), поэтому даже после присоединения к правильному процессу все еще нет гарантии, что точки останова будут достигнуты, поскольку трафик на сайт может быть направлен другому процессу.

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

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

  1. Убедитесь, что брандмауэр не блокирует, открыв соответствующие порты или полностью отключив его (просто не забудьте включить его снова, когда закончите).
  2. У вас должна быть учетная запись домена Windows с правами администратора на удаленном компьютере или учетная запись — с тем же именем пользователя и паролем, что и на локальном компьютере, на котором работает VS — на удаленном компьютере.
  3. На компьютере с установленным VS перейдите в папку (путь установки Visual Studio) \ Microsoft Visual Studio (номер текущей версии) \ Common7 \ IDE \ Remote Debugger (версия удаленного компьютера) и скопируйте и вставьте эту папку на удаленный компьютер или предоставьте общий доступ к этой папке. папка, чтобы она была доступна с удаленного компьютера.
  4. На удаленном компьютере войдите в систему как тот же пользователь, что и на локальном компьютере (см. Шаг 2), перейдите оттуда к скопированной или общей папке на шаге 3 и щелкните правой кнопкой мыши «».файл msvsmon.exe» и из контекстного меню выберите «Запустить от имени администратора».
  5. Удаленный монитор должен запуститься и заявить, что он запускает сервер обычно под именем (пользователь) @ (удаленный компьютер) или любым другим именем.
  6. В VS выберите Debug -> Прикрепить к процессу из меню, оставить транспорт на «По умолчанию» и дляНазвание квалификации » введите имя с шага 5.
    Если все пойдет правильно, появится список процессов на удаленной машине.

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

Решение проблем с запуском и отладкой ASP.NET 2.0 приложений на IIS

На форумах все чаще и чаще адают вопросы, почему работающее во встроенном сервере Visual Studio 2005 приложение не хочет запскаться на IIS.

В 90% случаях ответ в том, что приложение не сконфигурировано на IIS. Нужно открыть менеджер IIS, открыть свойства виртуального каталога, Напротив Application name (Имя приложения) нажать на кнопку Create (Создать).

В остальных 10% случаев либо неверно выставлены права директории (необходимо разрешить анонимный доступ: вкладка Directory Security).

Отладка приложений ASP.NET с IIS

я настроил отладки в Visual Studio 2008 для IIS вместо встроенного в сервер, так что я могу запустить перезаписи url-адресов в то время как развивающиеся (с помощью IIRF).

Это потребовалось время, чтобы добраться до работы (изменение разрешения, переустановка .NET framework), но он работает.

я выключил машину, и теперь, когда он вернулся на отладчик не запускается. Я использую параллели с WinXP на iMac.

«не Удается запустить отладку на веб -server. Не удалось запустить ASP.NETотладки. Более подробная информация может бытьдоступно, начиная с проектабез отладки»

я прочитал целую кучу постов, ТАК как нашел тему, но никто, кажется, предоставления рабочего ответ.

кто-нибудь сталкивался с этим и знает, как заставить его работать?

IIS 6.0 F1: Настройка приложения — вкладка «Отладка»

Эта вкладка используется для установки параметров отладки сценариев ASP в выбранном приложении.

Можно выбрать один из двух видов отладки сценариев: на стороне сервера или на стороне клиента. Для устранения неполадок в сценариях ASP во время их обработки можно использовать отладчик Microsoft® Script Debugger. Включение отладки ASP на стороне сервера приводит к выполнению сценария ASP в режиме одного потока. По соображениям производительности не рекомендуется включать отладку ASP на стороне сервера или клиента в рабочей среде.

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

Включить серверную отладку сценариев ASP

Установите этот флажок, чтобы разрешить на веб-сервере вызов отладчика Microsoft Script Debugger во время обработки страниц ASP.

Включить клиентскую отладку сценариев ASP

Установите этот флажок, чтобы разрешить клиенту вызов отладчика Microsoft Script Debugger во время обработки страниц ASP.

Отправлять клиенту подробные сообщения об ошибках ASP

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

Отправлять клиенту текстовое сообщение об ошибке

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

См. также

Дополнительные сведения об ASP-страницах и о настройке приложений см. в
документации по IIS 6.0 в Интернете в техническом центре Microsoft Windows Server.

Илон Маск рекомендует:  Что такое код ncurses_mvaddnstr
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL
Примечание