Как получить предварительно скомпилированные файлы Razor при развертывании веб-приложения .NET?

Мне поручено улучшить предварительную загрузку IIS и инициализацию приложений на нашем сервере. Я реализовал инициализацию приложения и предварительную загрузку приложения в IIS, но по-прежнему существует длительное время ожидания при перезапуске/перезапуске пула приложений. Я нашел несколько полезных ссылок, которые, как я думал, помогут мне, но я все еще не получаю предварительно скомпилированные представления Razor. Я пытался следовать этой статье для RazorGenerator, но, похоже, это не сработало. http://blog.davidebbo.com/2011/06/precompile-your-mvc-views-using.html

Шаги, которые я предпринял для статьи выше

1) установил расширение VS отсюда: https://marketplace.visualstudio.com/items?itemName=DavidEbbo.RazorGenerator

2) установлен пакет nuget RazorGenerator.Mvc

3) изменил вывод на «Нет» в представлениях бритвы и установил «Пользовательский инструмент» на «RazorGenerator», как описано в статье выше.

Изображения Расширения и обновления - Razor GeneratorПакет Nuget — RazorGenerator.MvcIndex.cshtml

Я делаю очистку и перестроение, но не вижу файла .cs для моего файла cshtml.

Хорошо, тогда я думаю, что это не работает, давайте попробуем что-нибудь еще... Давайте просто попробуем предварительно скомпилированную функцию, которую Visual Studio предлагает из коробки, как предлагает ответ этого сообщения: Предварительная компиляция представлений razor в asp .net mvc 5, но по-прежнему нет предварительно скомпилированных файлов cshtml.

Что я хотел бы сделать, так это то, как я могу сгенерировать эти файлы заранее, чтобы IIS не приходилось этого делать. Это изображение файлов временного кэша IIS после перезапуска/перезапуска.

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

Это изображение после того, как браузер запросил приложение

IIS скомпилирован

И, наконец, в этой публикации я использовал предварительную компиляцию Visual Studio (для двух изображений выше), поэтому я также прикрепляю изображение с параметрами публикации.

Параметры публикации

Хорошо... теперь я думаю, что это невозможно, но затем найдите другое решение SO здесь: VS2013 не компилирует представления ASP.NET MVC5 , но опять же с этой публикацией я все еще не вижу скомпилированные версии файлов cshtml во временном кеше IIS для моего приложения. Есть ли надежное решение, которое кто-нибудь может предложить, которое фактически предварительно скомпилирует файлы cshtml в моем приложении, чтобы они не генерировались при первом запросе браузера? У меня даже есть инициализация приложения в моей веб-конфигурации и установленная необходимая функция IIS, и я даже вижу, что она запускает «поддельный» запрос к моему приложению, однако файлы cshtml не компилируются по этому «поддельному» запросу. Извините, если я приложил много информации, но похоже, что каждый вопрос, который я задаю здесь, я не предоставляю свой фактический вопрос ... = ( Надеюсь, этот вопрос служит своей цели. Спасибо!

ОБНОВИТЬ

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

MvcBuildViews

И действие внизу файла

Создать действие

Изменение «temp» на «/» также не помогает.

ОБНОВЛЕНИЕ 2

Итак, отлучившись от компьютера на выходные, я заметил сегодня утром, что у меня установлен флажок «Разрешить обновление предварительно скомпилированного сайта». После снятия этого значения я начал видеть предварительно скомпилированные представления в моей папке bin. Поэтому я публикую свое приложение, думая, что в лучшем случае я буду ждать 5-10 секунд, пока приложение будет обслужено (обычно после того, как оно было запрошено в первый раз, это занимает всего около 2 секунд), но это все равно занимает 25-30 секунд. Это ожидаемое поведение с IIS?


person John Dover    schedule 09.02.2018    source источник