143 votes

Correction du chargement initial lent pour IIS

IIS a une fonction ennuyeuse pour les sites Web à faible trafic : il recycle les processus de travail inutilisés, ce qui entraîne un délai extrêmement long (plus de 30 secondes) pour le premier utilisateur du site après un certain temps.

J'ai cherché une solution au problème et j'ai trouvé ces solutions potentielles.

A. Utilisez le plugin d'initialisation de l'application

B. Utiliser le démarrage automatique avec .NET 4

C. Désactiver l'idle-timeout (sous IIS Reset)

D. Précompiler le site

Je me demande laquelle de ces solutions est préférable et, surtout, pourquoi il y a tant de solutions au même problème ? (Je pense qu'il n'y en a pas et que je ne comprends pas bien).

Modifier

Exécution C semble suffire à réchauffer mon site, mais j'ai découvert que la véritable racine de la lenteur de mon site est liée à Entity Framework, dont je ne parviens pas à comprendre pourquoi il se refroidit. Voir este question, qui malheureusement, il n'a pas encore été répondu a été répondu !

J'ai fini par faire un réchauffer le script pour visiter mon site de temps en temps pour s'assurer qu'il reste rapide.

2voto

LMK Points 154

Une bonne option pour envoyer des ping sur le site selon un calendrier est d'utiliser Microsoft Flow, qui est gratuit pour un maximum de 750 "exécutions" par mois. Il est très facile de créer un flux qui frappe votre site toutes les heures pour le garder au chaud. Vous pouvez même contourner la limite de 750 en créant un flux unique avec des délais séparant plusieurs visites de votre site.

https://flow.microsoft.com

0voto

Droobie Points 91

J'obtenais un retard constant de 15 secondes sur la première demande après 4 minutes d'inactivité. Le problème était que mon application utilisait l'authentification intégrée Windows pour SQL Server et que le profil de service se trouvait dans un domaine différent de celui du serveur. Cela provoquait une authentification inter-domaine de IIS à SQL lors de l'initialisation de l'application - et c'était la véritable source de mon retard. J'ai changé pour utiliser un login SQL au lieu de l'authentification Windows. Le retard a immédiatement disparu. Je conserve tous les paramètres d'initialisation de l'application pour améliorer les performances, mais ils n'étaient peut-être pas du tout nécessaires dans mon cas.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X