EF6 медленные последствия первого запроса при развертывании - PullRequest
1 голос
/ 06 июля 2019

Зная, что Entity Framework работает медленно при холодном запросе (первый запрос после компиляции модели), я делаю некоторые стандартные обходные методы, чтобы ускорить его. В основном предварительно скомпилированные представления, а также создание фиктивного http-запроса на стороне клиента, как только приложение загружается, чтобы инициировать запрос для запуска процесса модели.

Мой вопрос здесь конкретно о том, как это работает для развернутого приложения. Например, если я разверну это в Azure, будет ли это первый холодный запрос для всего приложения , который вызовет компиляцию модели, или этот медленный холодный запрос произойдет для каждого отдельного пользователя что использует приложение? Проще говоря, это происходит один раз и только один раз или каждый раз, когда пользователь посещает сайт для нового сеанса?

1 Ответ

1 голос
/ 06 июля 2019

Медленный запуск EF запускается с первого запроса / запросов, поступающих на веб-сервер, которому требуются службы баз данных.

Следует отметить пару моментов:

  • Если вы развернете ввеб-приложение Azure, убедитесь, что параметр приложения AlwaysOn включен.Если нет, то по истечении определенного периода времени веб-приложение будет приостановлено, и следующий запрос вызовет еще один холодный запуск.
  • Аналогично, если вы развертываете на виртуальную машину с IIS, вам необходимо проверить параметры перезапуска приложения.
  • При развертывании новой версии кода приложения процесс необходимо будет перезапустить, что приведет к еще одному медленному запуску.

Хороший подход для смягчения таких медленных запусков заключается в следующем.использование слотов развертывания и слотов предварительного подогрева перед отправкой на него фактического пользовательского трафика.Этого легко добиться, используя слоты развертывания Azure Web App.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...