Visual Studio регулярно зависает при запуске Microsoft.VisualStudio.Web.Host.exe

Задний план

Я поддерживаю несколько веб-сайтов, которые являются проектами веб-сайтов Visual Studio.

Проблема

Я обнаружил, что с парой этих проектов Visual Studio регулярно зависает, пока я работаю над кодом. Этого не происходит в некоторых проектах веб-сайтов, и я не видел, чтобы это происходило в проектах веб-приложений.

Симптомы

  • Каждый раз, когда он зависает, проходит около полминуты, прежде чем я снова могу его использовать.
  • Во время зависания диспетчер задач Windows сообщает, что Microsoft.VisualStudio.Web.Host.exe максимально использует одно из ядер ЦП.

Действия по воспроизведению

  1. Откройте файл .cs в каталоге App_Code.
  2. Внесите изменения в файл.
  3. Сохраните файл.
  4. Перейдите в другое место (например, переключитесь на вкладку, закройте файл, откройте другую программу в Windows).
  5. Вернитесь к файлу (например, переключитесь на вкладку, откройте его или вернитесь в Visual Studio).

Другие действия, которые иногда вызывают проблему:

  • Перейти к определению
  • Открытие файла
  • Предварительный просмотр файла
  • Закрытие файла
  • Использование рефакторинга
  • Найти обычаи

Что я пробовал

  • И Visual Studio 2012, и Visual Studio 2015
  • Изменение действия сборки проекта веб-сайта
  • Отключение Build Web site как часть решения
  • Удаление веб-ссылок и папки Bin, кажется, минимизирует проблему, но, очевидно, это нарушает работу веб-сайта. Может быть, проекты веб-сайтов сталкиваются с этой проблемой, когда они содержат много кода C#, отличного от файлов кода программной части?

Похожие проблемы

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


person Sam    schedule 30.09.2014    source источник
comment
У меня та же проблема. Обычно это происходит, когда я переключаюсь на другой файл с помощью Ctrl+Tab или щелкая другую вкладку в редакторе VS. Помощь в этом будет принята с благодарностью.   -  person Jeremiah Flaga    schedule 22.10.2014
comment
Такой же. У меня есть решение для 50 веб-сайтов. Я использую расширение Funnel, чтобы предотвратить загрузку всех веб-сайтов одновременно. Хотя это помогает сократить время первоначальной загрузки. Тем не менее VS зависает, как вы описываете. -- Я заметил разницу в сохранении файлов: если я редактирую два файла на разных вкладках, я могу нормально переключаться между ними, не сохраняя. Как только я сохраню текущую вкладку, Visual Studio зависнет, когда я попытаюсь переключиться на другую вкладку.   -  person Robert Fricke    schedule 29.10.2014


Ответы (5)


Я заметил, что проблема возникает реже, когда я приостанавливаю ReSharper.

«В

Проблема по-прежнему иногда возникала при редактировании классов в App_Code, но перезапуск Visual Studio помог ее решить.

person Sam    schedule 29.06.2016

Я столкнулся с аналогичной проблемой. Один проект веб-приложения с десятками библиотек классов, перенесенный из VS 2010 в VS 2013.

Я смог решить свою проблему, отключив опцию «Процесс хостинга»:

Чтобы отключить процесс хостинга

  1. Откройте исполняемый проект в Visual Studio. В проектах, которые
    не создают исполняемые файлы (например, библиотеки классов или проекты служб), этот параметр отсутствует.
  2. В меню Проект нажмите Свойства.
  3. Перейдите на вкладку Отладка.
  4. Снимите флажок Включить процесс размещения Visual Studio.

Полная информация в MSDN: http://msdn.microsoft.com/en-us/library/ms185330.aspx

person sdg    schedule 18.11.2014
comment
@PhilipPittle Честно говоря, ответ — это предлагаемое решение со ссылкой на то, как это сделать. Если ссылка исчезает, предложение остается в силе, при условии, что это хорошее предложение. - person RiggsFolly; 18.11.2014
comment
@RoggsFolly - справедливое замечание. Я обновил ответ, включив в него соответствующие шаги, чтобы не было двусмысленности в отношении снятия флага. - person Philip Pittle; 18.11.2014
comment
@PhilipPittle Проголосовал за, потому что Отделу инструментов разработчика в Microsoft необходимо переместить (кавычки) такие функции (конец кавычек), чтобы включить или отключить функции Windows. Это еще одна функция, такая как хранение сотен мегабайт отбрасывания TFS в $tf, которую VS не должен включать по умолчанию. - person jerhewet; 15.04.2015
comment
У меня нет вкладки «Отладка» в моем проекте веб-приложения в Visual Studio 2015. Есть мысли, как решить проблему без нее? - person aleyush; 28.11.2015
comment
Спасибо. Я получаю эти блокировки при преобразовании приложения Win Forms в WPF (оба открыты в своем собственном приложении Visual Studio), и я пытаюсь щелкнуть любой элемент XAML в конструкторе. Кажется, это исправлено. - person GeoffCoope; 09.03.2016
comment
Вы точно работали над проектом веб-сайта или над проектом веб-приложения? Я просто пытался найти это открытым для обоих типов проектов в VS2015, и его не было. В статье, на которую вы ссылаетесь, говорится, что она применима только для проекта .exe, тогда как я не знаю о проектах веб-сайтов/приложений, создающих файлы .exe в VS. - person Sam; 22.06.2016
comment
Извините, под открытым я имел в виду опцию. - person Sam; 28.06.2016

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

Отключите «Разрешить обновление этого предварительно скомпилированного сайта».

  1. Открытый сайт/решение
  2. Щелкните правой кнопкой мыши и просмотрите страницы свойств
  3. Перейдите к параметрам MSBuild.
  4. Снимите флажок «Разрешить обновление этого предварительно скомпилированного сайта»

Это сработало для меня.

person Isaac    schedule 20.01.2016
comment
Спасибо, вы исправили мою проблему. Я не мог отлаживать, сохранять файлы и т. Д. Без зависания VS на 10 минут! - person Jonathan Bick; 08.04.2016
comment
Я только что попробовал это в Visual Studio 2015 Update 2, и, к сожалению, для меня это не имело никакого значения. - person Sam; 22.06.2016

Эта проблема перестала возникать, когда проект веб-сайта был преобразован в проект веб-приложения.

Не простое решение, но оно решило проблему.

person Sam    schedule 29.06.2016
comment
Я принял этот ответ, потому что считаю, что это наиболее подходящий долгосрочный обходной путь для решения проблемы, а большинство других ответов либо не применялись, либо не имели никакого значения для конкретной ситуации. в вопросе. - person Sam; 24.05.2017

Симптомы в вопросе этого поста звучат точно так же, как кошмары, которые мне только что приснились сегодня:

Другие действия, которые иногда вызывают проблему:

Перейти к определению

Открытие файла

Предварительный просмотр файла

Закрытие файла

Использование рефакторинга Поиск использований

Кроме того, intellisense не работал (даже с CTRL + J), а также зависало «определение Peek».

Мне пришлось сохранить задачу, убивающую визуальную студию (и 2015, и 2017).

Мое исправление заключалось в том, чтобы войти в проект, с которым у меня возникли проблемы, открыть «Консоль диспетчера пакетов», удалить и переустановить «DotNetCompilerPlatform».

uninstall-package Microsoft.CodeDom.Providers.DotNetCompilerPlatform 

а потом

install-package Microsoft.CodeDom.Providers.DotNetCompilerPlatform

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

ОБНОВИТЬ:

Оно снова начало ползти назад. Я также заметил, что тот, кто устанавливал решение, сделал это только для двух различных проектов. Удаление платформы компилятора (что означает использование компиляторов, поставляемых с Visual Studio) снова сделало жизнь нормальной.

person Mike Cheel    schedule 11.08.2017