Dependendo da sua configuração, o Pool de Aplicativos atribuído ao seu aplicativo ASP.net, o AppPool reciclará em uma determinada hora do dia ou após um determinado número de solicitações. Quando isso acontece, o ASP.net recompila o site. Há uma boa visão geral sobre a compilação do ASP.net no MSDN .
Também há várias perguntas no StackOverfolow:
- Os projetos de sites da Web do ASP.NET são inerentemente lentos na compilação ou posso ter problemas mais profundos?
- Pré-compilação e tempos de inicialização no ASP.Net
- O que faz com que um pool de aplicativos no IIS seja reciclado?
Há duas etapas que uso para melhorar isso:
- Se possível, tente evitar reciclar o pool de aplicativos no momento em que alguém estiver usando o site. Você deve conseguir identificar isso usando o Google Analytics ou outro pacote de registro de tráfego.
- Configure algo para acessar seu site logo após o pool de aplicativos ser reciclado, eu uso extensivamente PolyMon para os servidores no local, então eu tenho um monitor que verifica se o site é saudável a cada 5 minutos, o que faz esse trabalho para mim. Eu usei SPWakeUp para sites do SharePoint, que provavelmente poderiam ser adaptados para qualquer site ASP.net.
Por exemplo, se você fosse capaz de identificar que seu site raramente é usado em 0200, você poderia configurar seu pool de aplicativos da seguinte forma (IIS Config - > Clique com o botão direito no AppPool - > Clique em "Reciclando ...") :
A caixa de diálogo acima é do Windows 7, mas não acredito que a caixa de diálogo tenha mudado muito entre o Windows 2008 e o Windows 7/2007 R2.