2010-11-01 6 views
1

J'ai un programme ASP.NET qui fonctionne très bien mais qui prend 10 secondes pour charger la page default.aspx, si je ferme le navigateur et rouvrez rapidement le navigateur et entrez la même URL, puis la page se charge presque instantanément. J'ai compilé mon code et publié le site de façon à ce qu'il contienne des DLL, donc il ne devrait pas avoir besoin de compiler. Ce délai est un problème pour moi car mon programme est conçu pour obtenir les données le plus rapidement possible.Le site ASP.NET prend 10 secondes pour charger la page de base de Hello World mais est en chargement instantané

Ma page test.aspx contient le code ci-dessous. J'ai placé cette page sur le site web de mon programme, donc il utilise le même web.config.

<%@ Page Title="Test" Language="VB" %> 
<html> 
<head runat="server"></head> 
<body><h2>Hello</h2> 
<p><%Response.Write(now())%></p> 
</body> 
</html> 

Quelqu'un peut-il m'aider à supprimer le délai de démarrage?

Un grand merci James

+1

Il semble que cela ressemble à une compilation à la volée. Cela fait trop longtemps que j'ai utilisé ASP.NET en dernier, mais je vérifierais à nouveau pour m'assurer que vous avez tout pré-construit. – Brad

+0

Je suis relativement nouveau sur ASP.NET, je ne vois pas de fichiers .cs dans mon site publié juste des pages .aspx et des fichiers dll. Est-ce compilé? Je supposais que c'était. Merci – JamesP

+1

fichiers .aspx doivent encore être compilés - donc en fonction de combien d'entre eux que vous avez qui pourrait prendre un certain temps. D'après mon expérience, l'application ne démarrera pas «instantanément» même si elle est précompilée - bien que ce serait beaucoup plus rapide. –

Répondre

0

Modifiez les paramètres du délai d'attente d'inactivité du pool d'applications dans iis

3

Même si le code est compilé, il devra encore être chargé, peut-être dans un nouveau domaine d'application qui pourrait prendre un certain temps.

Une solution consiste à maintenir l'application en vie en envoyant régulièrement des requêtes ping au site Web à partir d'un service externe.

E.g. www.keepaliveforever.com

0

Il n'y a pas de réponse facile, vous aurez probablement besoin de regarder une trace de pile pour le comprendre. Observez quel code est en cours d'exécution et combien de temps il faut pour l'exécuter. Rappelez-vous, la première fois que vous visitez votre site, votre application doit être chargée dans la mémoire et diverses choses se passent en arrière-plan.

+0

Y at-il un paramètre qui peut le garder en mémoire? Après environ une minute, il faut encore 10 secondes pour charger. Si je peux changer un paramètre qui changerait cette fois-ci à 8 heures ce serait bien. – JamesP

+0

Je ne pense pas qu'il existe un moyen de garantir qu'il reste en mémoire. Les domaines d'application dans IIS sont supposés être recyclables. Par exemple, une exception dans votre application peut entraîner l'arrêt du domaine d'application (bien que dans ce cas, il soit probablement redémarré). –