Задача запуска Azure Appcmd, установка preloadEnabled для ВСЕХ сайтов

Хорошо, поэтому я в основном внедряю azure warmups, используя новый модуль инициализации приложений IIS 8.0.

У меня есть задача запуска (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).

Любые идеи?

Ответ 1

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

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

Ответ 3

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

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