Автоматический запуск веб-ролика Azure после развертывания - PullRequest
7 голосов
/ 06 марта 2012

A имеет лазурную веб-роль с тестовой страницей и сервисом в этой роли. После публикации роли она не запускается автоматически, только при первом использовании. Поэтому, если роль по какой-то причине закрыта, первое использование после этого происходит довольно медленно.

Есть ли способ автоматически запустить веб-ролики сразу после их развертывания (либо в первый раз, либо после миграции)?

Ответы [ 2 ]

5 голосов
/ 06 марта 2012

Проверьте функцию автоматического запуска в IIS 7.5 .Убедитесь, что вы установили osFamily = "2" для веб-ролика, чтобы он использовал ОС Windows 2008 R2.

Редактировать: Мы по-прежнему застряли на osFamily = "1" по техническим причинам, поэтому мы небыл в состоянии реализовать функцию автоматического запуска еще.Однако вот шаги, которые потребуются для настройки автоматического запуска:

  1. Создайте свой собственный поставщик автоматического запуска, который реализует интерфейс IProcessHostPreloadClient .Раньше был поставщик по умолчанию, называемый Application Warm-Up Module , но он больше не доступен для загрузки.Вы можете использовать .Net Reflector для просмотра содержимого файла Microsoft.ApplicationServer.Hosting.AutoStart.ApplicationServerAutoStartProvider.dll в качестве примера реализации.Эта dll включена в Windows Сервер (не Azure) AppFabric.

  2. Следующий шаг - указать правильные настройки в applicationHost.config.Некоторые варианты кода, перечисленного здесь здесь , могут быть введены в ваш класс RoleEntryPoint, чтобы он вызывался при запуске вашей роли Azure.

Пожалуйста, сообщите сообществу, если вы успешно создали своего собственного поставщика автозапуска.На данный момент информации о реализации IProcessHostPreloadClient в Интернете не так много.

2 голосов
/ 06 марта 2012

Роль обычно перезапускается примерно раз в месяц для обслуживания ОС гостевой или базовой хост-ОС.Скорее всего, вы увидите тайм-аут AppPool из-за неактивности, который будет демонстрировать тот же тип задержки начального попадания.Время ожидания по умолчанию составляет 20 минут.Вы можете изменить время ожидания с помощью повышенного сценария запуска, например:

%windir%\system32\inetsrv\appcmd set config -section:applicationPools -applicationPoolDefaults.processModel.idleTimeout:00:00:00

Я обсуждал это также в еще одном вопросе SO .

...