Прогрев/инициализация ASP.NET

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

Есть масса вопросов о медленном запуске приложений.NET. Это легко объяснить перезапуском пула, запуском рабочего процесса, динамической компиляцией файлов.aspx, JIT и т. д. Кроме того, в приложении может потребоваться инициализация других вещей, таких как EntityFramework и кэши приложений.

Я нашел много разных решений, таких как:

Однако я не полностью удовлетворен ни одним из приведенных выше решений. Кроме того, я развертываю свои приложения на веб-сайтах Azure (в большинстве случаев ), поэтому у меня ограниченный доступ к IIS.

Я знаю, что есть некоторые пользовательские «скрипты прогрева», которые используют различные методы для отправки запросов в приложение (, например. wget/завиток ). Моя идея состоит в том, чтобы создать страницу «Warmup.aspx» в каждом из моих приложений ASP.NET. Затем у меня есть служба прогрева, которая отправляет HTTP GET на Warmup.aspx каждого сайта каждые... 5 минут. Эта служба может быть рабочей ролью в Azure или службой Windows в -локальной установке. Затем Warmup.aspx выполнит следующее:

  • Отправьте запрос HTTP GET на каждый файл.aspx -в приложении (, чтобы динамически компилировать страницу)
    • Этого можно избежать путем предварительной компиляции страниц.aspx с помощью aspnet _compiler.exe
  • . Отправьте запрос в базу данных, чтобы инициализировать EntityFramework
  • Инициализировать кеши приложений и т. д.

Так,мой последний вопрос: есть ли лучшие альтернативы моему сценарию «Warmup.aspx»? И это хороший подход или вы рекомендуете какой-то другой метод? Мне бы очень хотелось какой-нибудь официальный метод, который будет обрабатывать вышеуказанные критерии.

Приветствуются любые предложения, спасибо!

6
задан mikeesouth 7 August 2012 в 21:14
поделиться

0 ответов

Другие вопросы по тегам:

Похожие вопросы: