2013-04-18 5 views
12

Хорошо, поэтому я в основном в процессе внедрения лазурных разминков, используя новый модуль инициализации приложений IIS 8.0.Задача запуска Azure Appcmd, задание preloadEnabled для ВСЕХ сайтов

У меня есть задача запуска (cmd-файл), которая в основном уже отменяет тайм-аут простоя в IIS и время утилизации. Я пытаюсь добавить к нему инициализацию приложения.

Я понимаю, что мне нужно установить две вещи; startMode и preloadEnabled.

Мое приложение имеет множество сайтов в IIS (около 10), все случайно названные Azure с их собственными хаотично именными пулами приложений.

startMode легко, как это может быть установлено в качестве пула приложений по умолчанию, выполнив:

%windir%\system32\inetsrv\appcmd set config -section:applicationPools -applicationPoolDefaults.startMode:AlwaysRunning 

Это относится это ко всем пулах приложений.

Однако, это не так-то просто с preloadEnabled.

Чтобы установить preloadEnabled, вы можете использовать это для имени сайта:

%windir%\system32\inetsrv\appcmd set config -section:sites [name='MySite'].applicationDefaults.preloadEnabled 

Но мне нужно обратиться к ВСЕ сайты, которые я не знаю имя (они случайным образом) , вид по умолчанию (как я установил startMode).

Любые идеи?

+0

вы пробовали, что один: 'appcmd.exe набор конфигурации -сече-: system.applicationHost/сайты /applicationDefaults.preloadEnabled:"True»/фиксации: apphost' – astaykov

+0

@astaykov preloadEnabled не вариант на по умолчанию он может быть установлен только для каждого сайта (я попробовал это, он сказал, что такой параметр не существует – mattytommo

+0

В вашей архитектуре вы динамически добавляете сайты или сайты фиксируются при создании пакета Cloud Service и при развертывании, никаких изменений не производится (т. е. новые сайты не добавляются или удаляются) – astaykov

ответ

10

После дня поиска его я наконец получил его. Он в основном использует цикл в appcmd, используя соединительный кабель для объединения команд (вроде как цикл for). Вот оно:

%systemroot%\system32\inetsrv\AppCmd.exe list app /xml | %windir%\system32\inetsrv\appcmd set site /in -applicationDefaults.preloadEnabled:True 
+0

Когда я использую это, я получаю: Publish-AzureServiceProject: BadRequest: экземпляры вашей роли повторно перерабатывались несколько раз во время обновления или операции обновления . Это указывает на то, что новый вер sion вашей службы или параметры конфигурации, которые вы указали при настройке службы , предотвращают запуск экземпляров ролей.Убедитесь, что ваш код не выбрасывает необработанные исключения и что ваши настройки конфигурации верны, а затем запускаются еще одна операция обновления или обновления. –

0

Для тех, кто еще на IIS 7.5:

+0

Можете ли вы помочь мне показать, как это сделать с помощью командной строки? –

0

Для IIS 8.5, Настройка, в preload в приложении (не на уровне сайта) с помощью appcmd, следует использовать следующую команду.

appcmd set app "Default Web Site/ApplicationName" /preloadenabled:true 

 Смежные вопросы

  • Нет связанных вопросов^_^