web-dev-qa-db-fra.com

Première demande après un certain temps toujours lente - ASP.NET MVC / IIS 8.5 / Windows Server 2012 R2 VPS

J'héberge une application ASP.NET MVC 5 à faible trafic sur un VPS avec Windows Server 2012 R2/IIS 8.5, avec 1 Go de RAM.

Mon problème est que la première demande après un certain temps sans aucune demande obtient toujours une réponse lente - environ 1,5 seconde selon Chrome Dev Tools. Demandes de rafraîchissement ultérieures/réponses uniquement prendre environ 45 ms.

J'ai déjà défini Mode de démarrage sur AlwaysRunning sur le pool d'applications, et Preload Enabled sur True au niveau du site Web, mais cela avait absolument aucun effet . Même s'il n'y a aucun changement/téléchargement, après un certain temps, avec la prochaine demande, il faut 1,5 s pour obtenir une réponse.

12
michalstanko

Le problème est que vous devez installer la fonction IIS Application Initialization. Ensuite, cela devrait fonctionner avec votre configuration.

L'image est de le blog de Rick Strahl :

IIS Feature

Pensez également à régler:

  • Mode de démarrage à AlwaysRunning sur le pool d'applications
  • Préchargement activé à Vrai au niveau du site Web

Vous pouvez définir ces paramètres sans que le module Initialisation d'application soit installé, mais ils n'auront alors aucun effet.

Plus d'informations ici .

9
Christian Gollhardt

Existe-t-il potentiellement une incompatibilité de version entre la version de .NET Framework que votre site Web cible par rapport à la version de .NET Framework Runtime installée sur le serveur Web?

Et déployez-vous un site Web qui n'est pas précompilé et/ou qui peut être mis à jour? -

Advanced Precompile Settings

Les mises à niveau de la version .NET Runtime sont censées être hautement rétrocompatibles. Cependant, j'ai rencontré un problème très similaire lors de la migration de plusieurs sites Web ciblant le framework .NET 4.5.1 d'un serveur Windows Server 2008 R2 vers un serveur Windows Server 2012 R2 corrigé vers le runtime .NET 4.6. Tous mes chargements de page initiaux (sur plusieurs sites Web) ont commencé à prendre deux minutes pour chaque page individuelle, au lieu d'une fraction de seconde. Et toutes mes expériences avec différents paramètres IIS n'ont pas réussi à résoudre le problème.

Finalement, j'ai pu résoudre le problème de deux manières:

  1. La recréation complète du serveur, corrigée vers le runtime .NET 4.5 a résolu mon problème (ainsi que l'ajout d'un paramètre de registre à bloquer l'installation de .NET 4.6.1 ).
  2. Alternativement, le redéploiement de mes sites Web avec "Précompilation" coché et avec "Autoriser la mise à jour" décoché a également résolu mon problème.

En revanche, toutes mes tentatives de restaurer ou réparer la version .NET Runtime sur le serveur vers .NET 4.5 Runtime n'ont pas résolu mes problèmes de chargement de page. (Il y a essentiellement pas de processus propre et fiable pour restaurer complètement un runtime .NET à court de réimagerie du serveur.)

0
Mac