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

ASP.NET MVC5 каждая страница Razor очень медленно при первой загрузке

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

Я уже обеспечил debug=false в теге компиляции в файле system.web в файле конфигурации.

Я также удалил Razor как единственный механизм просмотра с помощью Global.asax

Что может вызывать эту задержку?. Это похоже на проблему, возникшую на старых веб-сайтах asp.net, прежде чем она переместилась в "веб-приложение", где каждый .aspx.cs codebehind был скомпилированные при развертывании, а не во время выполнения. Разве Razor по-прежнему страдает от этого?

4b9b3361

Ответ 1

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

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

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

enter image description here

Ответ 2

Webgrease. Он минимизирует ваши пакеты js и css при первой загрузке, а затем кэширует их. Проблема заключается в том, что когда в минифининге есть ошибки, он будет пытаться скомпилировать каждый раз, выполняя любые подпрограммы ошибок. Отчёта об ошибках нет, и единственный способ узнать об этом - это прямое открытие ссылок и просмотр таких вещей, как:

/* Minification failed. Returning unminified contents.
(69,1): run-time error CSS1019: Unexpected token, found '@import'
(69,9): run-time error CSS1019: Unexpected token, found '"variables.less"'
(70,1): run-time error CSS1019: Unexpected token, found '@import'

Что (в приведенном выше случае) показывает, что ваши ненужные .less или .sass файлы были опубликованы, что обычно является результатом набора подстановочных знаков. Условное связывание будет стоить вам больше времени, чем экономит.

Ответ 3

Разбор представления может быть медленным. Пробовали ли вы использовать RazorGenerator для компиляции ваших просмотров?

Введите install-package RazorGenerator в консоли диспетчера пакетов NuGet или установите его через NuGet вручную здесь.