Primeira solicitação após um tempo sempre lento - ASP.NET MVC / IIS 8.5 / Windows Server 2012 R2 VPS

12

Estou hospedando um aplicativo ASP.NET MVC 5 de baixo tráfego em um VPS com Windows Server 2012 R2 / IIS 8.5, com 1 GB de RAM.

Meu problema é que a primeira solicitação após algum tempo sem solicitações sempre recebe uma resposta lenta - cerca de 1,5 segundos, de acordo com as Ferramentas de Desenvolvimento do Chrome. Solicitações / respostas de atualização subsequentes levam apenas cerca de 45 ms .

Já defini o Modo Iniciar como AlwaysRunning no pool de aplicativos e Preload Enabled como True no nível do site, mas não teve absolutamente nenhum efeito . Mesmo que não haja alterações / uploads, após algum tempo, com a próxima solicitação, são necessários 1,5 s para obter uma resposta.

michalstanko
fonte

Respostas:

9

O problema é que você precisa instalar o recurso IIS Application Initialization. Então deve funcionar com sua configuração.

A imagem é do blog de Rick Strahl :

Recurso do IIS

Lembre-se também de definir:

  • Modo Iniciar para AlwaysRunning no pool de aplicativos
  • Pré-carregamento ativado para True no nível do site

Você pode definir essas configurações sem que o Módulo de inicialização do aplicativo esteja instalado, mas elas não terão efeito.

Mais informações aqui .

Christian Gollhardt
fonte
0

Existe potencialmente uma incompatibilidade de versão entre a versão do .NET Framework que seu site está direcionando em comparação com a versão do .NET Framework Runtime instalada no servidor Web?

E você está implantando um site que não é pré-compilado e / ou atualizável? -

Configurações avançadas de pré-compilação

As atualizações de versão do .NET Runtime devem ser altamente compatíveis com versões anteriores. No entanto, deparei-me com um problema muito semelhante ao migrar vários sites direcionados ao .NET 4.5.1 Framework de um servidor Windows Server 2008 R2 para um servidor Windows Server 2012 R2 corrigido no .NET 4.6 Runtime. Todos os carregamentos de minha página inicial (em vários sites) começaram a levar dois minutos para cada página individual, em vez de uma fração de segundo. E todas as minhas experiências com diferentes configurações do IIS não tiveram êxito na resolução do problema.

Por fim, consegui resolver o problema de uma de duas maneiras:

  1. A recriação completa do servidor, corrigida para o .NET 4.5 Runtime, resolveu meu problema (além de adicionar uma configuração de registro para bloquear a instalação do .NET 4.6.1 ).
  2. Como alternativa, reimplementar meus sites com "Pré-compilar" marcado e com "Permitir a atualização" desmarcada também resolveu meu problema.

Por outro lado, todas as minhas tentativas de reverter ou reparar a versão do .NET Runtime no servidor para o .NET 4.5 Runtime não resolveram os problemas de carregamento da página. (Não há essencialmente nenhum processo limpo e confiável para reverter completamente um .NET Runtime antes da criação de novas imagens do servidor.)

Mac
fonte