IIS Express Немедленное завершение работы сайта после остановки веб-приложения

173

Я использую Visual Studio 2012 в первые дни, когда я хотел остановить приложение в IDE, приложение все еще работало на IIS Express, я мог просматривать и работать с запущенным приложением, но сейчас не могу. IIS Немедленное завершение работы приложения, если я нажму кнопку «Стоп». Поскольку я помню, я не вносил никаких изменений в настройках. Как я должен сделать это работает так же, как в первые дни.

сабля
источник
1
Попробуйте «просмотреть в браузере» вместо «играть». Вы поменяли браузер по умолчанию? IE автоматически выключается при остановке, Chrome - нет.
Эмануэле Греко
Нет, я использую FF, но иногда мне нужно отлаживать приложение.
Сабер
Я думаю, что это связано с IIS Express.
сабля
1
Вместо нажатия кнопки «Стоп» вы также можете использовать «Отключить все» в меню «Отладка».
jessehouwing
1
Он отсоединял отладчик от отлаживаемых процессов, но не убивал процессы в процессе.
jessehouwing

Ответы:

344

Недавно я столкнулся с подобной ситуацией, когда внезапно мой IIS Express остановился сразу после того, как я прекратил отладку. Это произошло после того, как я включил «Включить редактирование и продолжить» . Таким образом, если вы отключите это, вы увидите, что IIS Express продолжает работать даже после остановки отладки.

Щелкните правой кнопкой мыши ваш проект> щелкните Свойства> выберите вкладку "Интернет" слева> снимите Enable Edit and Continueфлажок.

Аби
источник
3
Я могу подтвердить, что это решило проблему для меня.
Максим Роиллер
51
Это работает !! Щелкните правой кнопкой мыши свой проект> щелкните «Свойства»> выберите вкладку «Интернет» слева> снимите флажок «Включить редактирование и продолжить».
nv.snow
6
Оно работает. В Visual studio 2013 Откройте «Сервис-> Параметры», выберите в дереве «Отладка-> Изменить и продолжить» и снимите флажок «Включить редактирование и продолжить».
Ренцо Сиот
3
Вы можете прочитать об этой функции более подробно здесь: blogs.msdn.com/b/webdev/archive/2013/07/11/…
gor
5
Нет, это плохое решение - посмотрите правильное решение, опубликованное @jessehouwing ниже.
Джош М.
85

В VS2010 и VS2012 опция редактирования и продолжения отключена по умолчанию при создании нового проекта веб-приложения. В VS2013 он включен по умолчанию.

Вы можете найти эту опцию на вкладке Веб в окне свойств веб-проекта.

изменить и продолжить вариант vs2013

При включенном «Включить редактирование и продолжить» отладчик VS запускает ваше веб-приложение в IIS Express. Когда вы прекращаете отладку, IIS Express тоже закрывается. При таком поведении вы увидите, что системный трей IIS Express обнаруживается во время отладки и исчезает после отладки. Это поведение такое же, как в VS2012, когда включена опция «Включить редактирование и продолжить».

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

Я ж вам нужно использовать «Изменить и продолжить» или вы разрабатываете Asp.net 5 сайта (ASP.NET 5 проектов не имеют Изменить и продолжить флажок в свойствах проекта) вы должны использовать «DeTech все» команды прекратить отладку.

Отладчик отсоединится от процесса iis, не закрывая его.

Очевидно, что функция «Изменить и продолжить» не будет работать, пока вы не начнете отладку снова.

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

giammin
источник
картинка стоит тысячи слов: D
giammin
64

Вместо нажатия на (X) STOPкнопку, вы можете использовать Detach allпункт меню в меню отладки. Основное отличие состоит в том, что кнопка «Стоп» завершит любой процесс, который в данный момент отлаживается, а «Отключить все» отключит отладчик от процессов, но не завершит их.

Обычный рабочий процесс IIS также будет прерван, но, поскольку он раньше работал как служба, он также автоматически запускается снова, и, таким образом, вы можете продолжать использовать его без необходимости перезапуска процесса через |> Debugили |> Start without debugging.

Скриншот для справки

Добавление кнопки «Редактировать и продолжить» на панель инструментов отладки.

jessehouwing
источник
3
на самом деле это ближе к реальному ответу. Опция «РЕДАКТИРОВАТЬ И ПРОДОЛЖИТЬ» - это особенность. Присоединение и отсоединение трассировщика отладки к процессу прослушивания - это подчеркнутая концепция обсуждения, а также то, завершает ли нажатие остановка этот процесс прослушивания или просто отсоединяется от него .. который, конечно, вы можете присоединить также.
Бретт Касвелл,
@jcmcbeth это действительно работает для IIS Express .. Я не мог видеть, что это не работает ... Процессы IIS Express - это просто отдельные процессы ... ваш VS-отладчик запускает процесс и подключается к нему .. но этот процесс не зависит от того, какой подключенный отладчик запускается дольше, чем ваше приложение или веб-сервер требуют, чтобы посетитель / пользователь-агент / клиент работал в proc
Brett Caswell
1
@jcmcbeth, странно говорить об этом на сайте вопросов и ответов, когда вы говорите о поддержке функций и настройках. Это не взять или оставить Scenerio; Вы заявили , что он не появляется на работе с IIS Express. Оно делает.
Бретт Касвелл,
1
Флажок «Включить редактирование и продолжить» отсутствует в VS 2015 RC для проектов ASP.NET 5, так что если вы хотите использовать IIS Express с ними, то так и есть.
Томек
7
Это ответ о том, как VS 2015 Update 2 изменил поведение IIS с удалением «Редактировать и продолжить» на вкладке «Проект».
Robharrisaz
32

Похоже, что после выпуска Visual Studio 2015 Update 2 принятое решение больше не работает.

Самое простое решение, которое я нашел, - это запустить проект, выбрав « Пуск без отладки » в меню « Отладка» .

Токвиль
источник
1
Похоже, вы говорите о VS2015.
Чад Кариш
Блин, я просто столкнулся с этой проблемой и разместил вопрос по этому вопросу . Есть ли какой-нибудь известный обходной путь для решения этой проблемы, кроме перепривязки ярлыков для запуска без отладки и отсоединения вместо остановки?
nikib3ro
1
Они говорят, что исправляют это в следующем обновлении, в то же время вы можете использовать еще один прием - нажать Ctrl + F5, чтобы запустить сайт без отладки: connect.microsoft.com/VisualStudio/feedback/details/2562576/…
mattmanser
4

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

Я обычно запускаю проект впервые с помощью контекстного меню «Просмотр в браузере» (или CTRL-Shift-W).

С тех пор все, что требует отладки, я обычно присоединяю к новому существующему процессу iisexpress. В то время как использование контекстных меню сделало бы это не стартером, это почти так же быстро, как F5 со следующими нажатиями клавиш:

  • Shift-F6 для построения текущего проекта или Ctrl-Shift-B для построения всего решения (это требуется только в том случае, если вы внесли изменения, но я подумал, что должен упомянуть об этом, поскольку F5 уже делает это).
  • Ctrl-Alt-P открывает диалог присоединения к процессу

  • набрав «iis», вы перейдете к процессу iisexpress.

  • нажмите Enter и вы подключены

Если у вас запущено несколько iisexpress, последний из них будет отображаться вверху списка. Другим вариантом является смещение-выбор и прикрепление ко всем из них.

Это имеет ряд преимуществ IMO. Прежде всего, это не прекращает процесс. Во-вторых, окно браузера не закрывается, когда вы прекращаете отладку. Меня не устраивает, когда я вижу, как разработчик повторяет 7 шагов, чтобы перейти к воспроизведению ошибки, когда все, что ему нужно сделать, это нажать F5 в существующем окне браузера, чтобы просто повторить репост после подключения отладчика. Наконец, я должен сделать это уже при подключении к nunit, поэтому я получаю более последовательный опыт.

b_levitt
источник