Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 1

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

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

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

UPDATE

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

<system.webServer>
   <aspNetCore processPath=".\Web.exe" />
</system.webServer>

Ответ 2

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

Ответ 3

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

Подробнее о том, как работает реальный хостинг IIS с ASP.NET Core, вы можете проверить это сообщение в блоге: http://weblog.west-wind.com/posts/2016/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 - не требуется ручное вложение.

введите описание изображения здесь

Ответ 4

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