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

12

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. Les demandes / réponses de rafraîchissement suivantes ne prennent que 45 ms environ .

J'ai déjà défini le mode de démarrage sur AlwaysRunning sur le pool d'applications et le préchargement activé sur True au niveau du site Web, mais cela n'a eu 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.

michalstanko
la source

Réponses:

9

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

L'image provient du blog de Rick Strahl :

Fonctionnalité IIS

Pensez également à régler:

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

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

Plus d'informations ici .

Christian Gollhardt
la source
0

Existe-t-il 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? -

Paramètres de précompilation avancés

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 (avec l'ajout d'un paramètre de registre pour 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 restauration ou de réparation de 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 n'y a essentiellement aucun processus propre et fiable pour restaurer complètement un runtime .NET à court de réimagerie du serveur.)

Mac
la source