Un'altra opzione è quella di configurare IIS Idle Azione Time-Out a 'sospendere'. Puoi farlo come parte dello script di avvio del tuo ruolo web.
Il comando di cui avete bisogno è sulla scatola come parte dell'installazione di IIS (si noti che questo funzionerà con Windows Server 2012 R2 e versioni successive, con il proprio codice di riferimento .NET 4.5.1 e superiore).
%windir%\system32\inetsrv\appcmd set config -section:applicationPools -applicationPoolDefaults.processModel.idleTimeoutAction:Suspend
Dovrete aggiornare il file di configurazione di Azure Cloud Service (.cscfg) da utilizzare sistema operativo della famiglia 4, come indicato dalla ScottGu nel suo blog post.
Poiché le azioni di avvio vengono eseguite quando le provisioning delle istanze vengono eseguite e prima che l'applicazione Web venga distribuita su IIS, impostando i valori predefiniti del pool di applicazioni verrà defacto impostare l'azione di timeout dell'ID del pool di applicazioni su Sospensione.
fonte
2013-10-30 14:53:05
+1 Per una risposta molto utile. Ma ti manca la prima sezione dei parametri: applicationPools – huha
Poiché il ruolo non è stato avviato emulando localmente, ho dovuto trovare il motivo. Trovo questo articolo https://azure.microsoft.com/en-us/documentation/articles/cloud-services-startup-tasks-common/ e ho seguito i suggerimenti lì. L'aggiunta di 'EXIT/B 0' sulla seconda riga di comando ha risolto il problema. Sospetto che, se si esegue Visual Studio non elevato, il comando non riesce e impedisce che il ruolo venga avviato. Preferisco piuttosto il ruolo iniziato anche con i timeout :-). – Zoka
Infine buona risposta – Artyom