2013-04-18 11 views
12

Okej, więc zasadniczo jestem w trakcie wdrażania rozgrzewek lazurowych za pomocą nowego modułu inicjalizacji aplikacji IIS 8.0.Zadanie uruchamiania aplikacji Azure Appcmd, ustawienie preloadEnabled dla WSZYSTKICH witryn

Mam zadanie uruchamiania (plik cmd), które zasadniczo już anuluje czas bezczynności w IIS i czas recyklingu. Próbuję dodać do tego inicjalizację aplikacji.

Zdaję sobie sprawę, że muszę ustawić dwie rzeczy; startMode i preloadEnabled.

Moja aplikacja ma wiele witryn w IIS (około 10), wszystkie losowo nazwane przez Azure z własnymi losowo nazwanymi pulami aplikacji.

startMode jest łatwe, jako że może być ustawione jako domyślne puli aplikacji, wykonując:

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

Odnosi się to do wszystkich pul aplikacji.

Jednak, to nie jest takie proste z preloadEnabled.

Aby ustawić preloadEnabled, można to wykorzystać dla nazwanego strony:

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

Ale muszę to mieć zastosowanie do WSZELKIE witryn, które nie znam nazwy (są losowo) , rodzaj domyślnego (jak mam ustawić startMode).

Wszelkie pomysły?

+0

próbowałeś że jeden: 'appcmd.exe set config -section: system.applicationHost/sites /applicationDefaults.preloadEnabled:"True”/popełnić: apphost' – astaykov

+0

@astaykov preloadEnabled nie jest rozwiązaniem na domyślne witryny, może być ustawione tylko na stronę (próbowałem, powiedział, że takie ustawienie nie istnieje – mattytommo

+0

W swojej architekturze dynamicznie dodajesz witryny lub witryny są naprawiane podczas budowania pakietu usług w chmurze i podczas wdrażania, żadne zmiany nie są wprowadzane (tzn. żadne nowe witryny nie są dodawane lub usuwane)? – astaykov

Odpowiedz

10

Po dniu poszukiwań, w końcu to dostałem. Zasadniczo używa pętli w appcmd, używając komend do łączenia łańcuchów (w rodzaju pętli for). Oto ona:

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

Gdy używam tego, otrzymuję: Publish-AzureServiceProject: BadRequest: Twoje instancje roli zostały poddane recyklingowi kilka razy podczas aktualizacji lub aktualizacji . Oznacza to, że nowa wersja w usłudze lub ustawieniach konfiguracyjnych podanych podczas konfigurowania usługi, aby zapobiec uruchamianiu instancji ról.Sprawdź, czy kod nie wyrzuca nieobsługiwanych wyjątków i czy ustawienia konfiguracji są poprawne, a następnie rozpocznij kolejną aktualizację lub aktualizację. –

0

Dla tych, którzy jeszcze na IIS 7.5:

+0

Czy możesz pomóc mi pokazać, jak to zrobić za pomocą wiersza poleceń? –

0

Dla IIS 8.5, aby ustawiona, preload przy zastosowaniu poziom (nie na poziomie witryny) przy użyciu appcmd, należy zastosować następujące polecenie.

appcmd set app "Default Web Site/ApplicationName" /preloadenabled:true 
Powiązane problemy