Это в основном с вашими веб-ролями?Они запускают. NET код?(ASP.NET ?, WCF? И т. Д.)
Если это так, возможно, вы имеете дело с обычной задержкой .NET JIT в приложении IIS, которое было переработано из-за активности.Симптом звучит так же, как если у вас есть приложение ASP.NET на месте, и вы не обращаете на него внимания в течение некоторого времени.Рабочий IIS перерабатывается, и среда выполнения не будет JIT-компилировать ваше приложение до тех пор, пока не поступит новый HTTP-запрос. Это создает ситуацию, когда этот первый запрос может выполняться «навсегда», но каждый запрос, поступающий в следующие несколько минут, выглядит как «мгновенный ", как и следовало ожидать от вашего кода.
Это не специфично для Azure, но вы можете иметь дело со средой IIS, отличной от того, что вы запускаете на месте (что касается настроек по умолчанию для пула приложений по умолчанию)/ настройки прогрева после повторного использования).
редактирование с предложениями
Если вы подозреваете, что это связано с прогревом, есть несколько решений.
Лучшим (если вам не нужно иное) является устранение основной причины, а именно IIS, перерабатывающей пул приложений.По умолчанию это происходит по таймеру или по количеству запросов (не уверен, какой в Azure).Вы можете переопределить, когда это происходит в вашем файле web.config с элементом <recycling></recycling>
.IIS.net имеет лучшее описание этих настроек.Посмотрите:
http://www.iis.net/ConfigReference/system.applicationHost/applicationPools/add/recycling
и посмотрите, поможет ли это.Я бы порекомендовал просто выполнить временную перезагрузку в течение периода времени, когда вас не ударили (например, среди ночи)
Другой вариант - обеспечить непрерывное посещение сайта трафиком.с каким-то программным обеспечением для голосования.Мониторы "uptime / status", такие как pingdom, отлично подходят для этого.Это хакерский подход, но я использовал его раньше в нечетных сценариях.(не рекомендуется)
Если это не сработает из-за особых требований к запуску (что звучит так, как будто у вас нет), в IIS есть модуль прогрева, а в C # 4.0 - классы прогрева.который может помочь.Опять же, есть еще что-то, что позволяет вам контролировать то, что происходит во время запуска, а не при запуске.