Como posso aquecer meu webapp asp.net mvc após uma reciclagem de pool de aplicativos?

20

Estou executando uma aplicação web do asp.net MVC no IIS 8.0. Meu aplicativo precisa ser aquecido antes de receber solicitações. Já temos um processo para aquecer o aplicativo automaticamente quando implantamos um novo código. No entanto, estamos vendo eventos periódicos do App Pool Recycle que resultam no aquecimento do aplicativo.

Existe uma prática recomendada para detectar um evento de reciclagem do pool de aplicativos e executar um script ou algum código?

    
por AgileJon 23.04.2014 / 20:08

2 respostas

51

Existem várias coisas que você pode fazer:

1. Inicialização da Aplicação

Você pode usar Módulo de inicialização de aplicativos que vem com o IIS 8.0

você pode ter algo assim em seu web.config

<applicationInitialization
     doAppInitAfterRestart="true" >
   <add initializationPage="/" />
</applicationInitialization>

Isso enviará uma solicitação para a raiz do seu aplicativo ( initializationPage="/" ) toda vez que seu aplicativo for iniciado automaticamente.

Você também pode configurar o Modo de início do seu pool de aplicativos como Always Running , o que significa que toda vez que o IIS for reiniciado, ele iniciará o pool de aplicativos imediatamente (se você clicar com o botão direito no pool de aplicativos, Advanced Settings

ePreloadparaoseusite(cliquecomobotãodireitodomousenositee,emseguida,emManageSitethenAdvancedSettings

2. Desativar Tempo Limite Inativo

Além disso, você pode desativar o idleTimeout (por padrão, o IIS encerrará o aplicativo após 20 minutos de atividade) alterando o de Idle Time-out para o pool de aplicativos para 0 (infinito)

3.Desativarareciclagemperiódica

tambémdesativaRegularTimeInterval(minutes)porpadrãoOIISreciclaráseuaplicativoacada29horas.

Para

    
por 15.05.2014 / 05:01
1

Pela minha experiência, AlwaysRunning e Preload habilitado não têm muita velocidade. O maior tempo de espera é a compilação dinâmica (que pode ser corrigida com pré-compilação aspx) e o carregamento de assemblies na memória e no armazenamento em cache.

    
por 01.10.2018 / 15:10