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

Почему сервер веб-разработки ASP.NET/Visual Studio настолько медленный?

Compiling - XKCD (xkcd)

Я знаю, что компиляция в наши дни намного быстрее, чем раньше. Тем не менее, для меня кажется, что компиляция и особенно запуск/отладка проектов ASP.NET с Visual Studio Web Development Server невероятно медленная.

С начала прошлого лета я много работал над проектами ASP.NET MVC. Конечно, лучший способ их отладки - использовать веб-сервер, который поставляется с Visual Studio. При этом я получаю ужасно медленные времена загрузки. В инструментах Chrome dev обычно сообщается, что загрузка одной из моих страниц имела 3-минутное время ожидания, за которым следует короткое время загрузки.

Я видел эти два вопроса, но они не помогают. В то время как я выполняю большую часть моей работы по отладке в Chrome, это происходит в IE.

У кого-нибудь еще была эта проблема? Если да, то какие-нибудь подсказки?

Кроме того, я сомневаюсь, что проблема связана со скоростью моей машины. Этот компьютер действительно работает под управлением Windows 7 и Visual Studio 2010, поэтому я не понимаю, почему отладка ASP.NET должна быть настолько медленной.


ОБНОВЛЕНИЕ: В своем ответе ниже Джон Скит предложил попытаться определить, вызвана ли проблема средой или самим кодом. Я создал новый проект MVC и запустил его. Первый тест оказался намного быстрее. Однако, проверив его еще несколько раз, можно с уверенностью сказать, что первый тест был аномалией - обычно это занимает столько же времени, сколько и мой большой проект (2 - 3 минуты). Таким образом, это проблема с средой. Заранее благодарим за помощь!


ОБНОВЛЕНИЕ # 2: Прошло некоторое время с тех пор, как я обновил этот вопрос. Вот некоторые подробности, которые я собрал с момента последнего обновления:

  • Эта задержка происходит на обеих моих машинах разработки, работающих под управлением Windows 7 и Visual Studio 2010
  • Эта задержка происходит для всех моих проектов MVC2 и MVC3 (но я еще не экспериментировал с простым ASP.NET)
  • Простые/ванильные проекты MVC испытывают ту же задержку, что и проекты MVC с большими кодовыми базами.
  • Отключение IntelliTrace не помогло
  • Отключение IPv6 не помогло

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

4b9b3361

Ответ 1

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

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

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

Если вы создаете новый проект MVC и отлаживаете его, это займет много времени?

Вы также можете запустить Wireshark при запуске отладки - посмотрите, пытается ли что-то в вашем приложении получить сетевой ресурс некоторого описания, не понимая он.

Ответ 3

Это действительно известная проблема с производительностью с MVC, вызванная выбросом тонны исключений изнутри при запуске. Если вы включили IntelliTrace, это разрушит хаос. Попробуйте отключить IntelliTrace и посмотрите, улучшит ли это вообще.

Источник: http://connect.microsoft.com/VisualStudio/feedback/details/535799/debugging-mvc-is-very-very-slow

Ответ 5

В те дни я столкнулся с той же проблемой, работая под Win7, VS2010 и разрабатывая решение Silverlight с 10+ проектами. Для запуска IE требуется около 3 минут, и он ждет 3 минуты, чтобы вернуть VS после закрытия IE. Я преодолел проблему, попробовав разные способы. Но единственный ценный метод:

  • Выгрузить все проекты не для отладки
  • Запустите отладку решения (оно работает нормально)
  • Перезагрузить другие проекты
  • VS работает нормально здесь. (VS работает нормально)

Кажется, проблема связана только со средой VS на моей стороне. Он не имеет ничего общего с ASP.NET Development Server или IIS.

Ответ 6

У меня была такая же проблема. Это закончилось тем, что ColdFusion был установлен на моей локальной машине (как это было больно для меня). ColdFusion помещает сопоставления обработчиков с именем AboMapperCustom- *, которые вызывают латентность. Я удалил ColdFusion, потому что мне он больше не нужен (слава богу). Другим решением может быть удаление каждой записи AboMapperCustom через web.config. Пример:

<handlers>
    <remove name="AboMapperCustom-15397" />
    <remove name="AboMapperCustom-20358" />
    <remove name="AboMapperCustom-47286" />
</handlers>

Убедитесь, что 5-значные числа, следующие за AboMapperCustom, соответствуют тем, которые находятся в локальных сопоставлениях диспетчера IIS.

НТН

Ответ 7

В Visual Studio 2012 + Win10 x64 я заметил, что если вы

  • перейдите на панель задач и найдите там сервер-сервер asp.net,
  • щелкните правой кнопкой мыши и сделайте "подробнее"
  • закрыть окно (НЕ "остановить", просто закрыть через "x" )

тогда сервер загружается почти мгновенно