Приложение Windows Azure Web MVC Application_Start перезапускается после отсутствия активности - PullRequest
4 голосов
/ 22 июля 2011

У меня есть приложение MVC3 для Windows Azure.В Application_Start я вызываю все мои загрузчики, которые должны быть запущены до загрузки приложения, и это прекрасно работает.Один из запускающих загрузчиков запускает некоторые API-интерфейсы веб-служб для предварительной загрузки и кэширования группы данных.Этот процесс может занять 10-15 секунд, что хорошо, потому что он находится в Application_Start и является однократным попаданием после того, как я сам развернул и включил сайт.

Сайт еще не запущен, и я обнаружил, чтоПосле того, как я развернусь и нажму немного, все в порядке и очень быстро, тогда, если я оставлю сайт один на 45 минут или около того и вернусь к нему, при загрузке страницы будет долгая задержка.При ведении журнала я обнаружил, что Application_Start запускается, и мне приходится ждать, пока сайт снова запустится и запустит все мои загрузчики.

Мой вопрос: нормально ли для Azure WebRole"идти спать", если есть бездействие?И если так, как я могу предотвратить это, чтобы у моего счастливого пользователя, который заходит на сайт в это время, не было долгого времени ожидания и плохого опыта.

1 Ответ

6 голосов
/ 22 июля 2011

По умолчанию IIS имеет 20-минутный тайм-аут для незанятых приложений, прежде чем он их выгружает.Попробуйте отключить этот тайм-аут при запуске: http://blog.smarx.com/posts/controlling-application-pool-idle-timeouts-in-windows-azure.

...