IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

1ere execution des pages aspx


Sujet :

ASP.NET

  1. #1
    Membre éprouvé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Par défaut 1ere execution des pages aspx
    Bonjour,

    y a t il un moyen pour que les pages aspx s'execute apres un deploiement pour ne pas avoir cette lenteur à la premiere execution ?

    Merci

  2. #2
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Salut,

    Cette lenteur se produit à chaque fois que l'application démarre. Cela se produit assez souvent en général. Si tu n'as pas trop de pages tu peux faire une routine qui appelle tes pages sur le Application_Start.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  3. #3
    Membre confirmé
    Avatar de chemanel
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 173
    Par défaut
    En fait, cette lenteur apparait, car la première fois que tu accèdes a une page, IIS doit compiler la page pour en faire une "dll" ...

    Tu peux eviter ce problème en compilant a l'avance tes pages, quand tu transfères les fichiers sur un ftp, au lieu de "bêtement" les copier coller, dans visual studio, tu vas dans le Menu "Build" et tu fais un "Publish".

    Ensuite, il suffit de bien cocher les bonnes cases, au final, il va te publier ton site dans un dossier, ce dossier contiendra en fait des pages aspx (qui seront vides) de moins de 1K chacune, elle ne serve qu'a accepter les appels entrant, et toutes les dll déjà précompilées (qui seront executés par les handlers).

    C'est l'étape "classique" quand tu dois mettre un site en production.

    J'espere que ça t'aide et que ça solutionne ton problème !

  4. #4
    Membre chevronné
    Inscrit en
    Octobre 2005
    Messages
    400
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 400
    Par défaut
    Le démarrage de l'application nécessite un temps incompréssible (IIS, contexte de l'application...). La routine est la seule solution pour réduire ces temps. Le principe est de laisser ton application en eveil en appelant à un intervalle régulier une page de l'application.

  5. #5
    Membre confirmé
    Avatar de chemanel
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 173
    Par défaut
    C'est sérieux ce problème ? Je n'étais pas au courant... Le cas n'a jamais été relevé en environement de production... C'est donc un cas bien réel? vous avez déjà eu ça en production? (quand vous compilez correctemetn l'application?)

  6. #6
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Si ton site est une application web les dll son déjà compilées (puisque ce sont des dll). Si c'est un site web et que tu pousses les fichiers .aspx et .cs (ou .vb) il faut effectivement lui laisser le temps de compiler. Rien à faire que de laisser IIS faire son boulot.
    "Winter is coming" (ma nouvelle page d'accueil)

  7. #7
    Membre éprouvé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Par défaut
    Chemanel j'ai essayé une precompilation et effectivement je n'ai p lus cette latence.

    Merci à vous pour vos explications.

  8. #8
    Membre éprouvé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Par défaut
    J'ai un script nant qui precompile et compile mon application web.

    La premiere execution reste lente meme si c'est bcp moins lent que si je ne precompile pas.

    Y a t il une astuce, un robot, un soft ou autres afin que la premiere execution se fasse automatiquement ?

  9. #9
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Citation Envoyé par topolino Voir le message
    J'ai un script nant qui precompile et compile mon application web.

    La premiere execution reste lente meme si c'est bcp moins lent que si je ne precompile pas.

    Y a t il une astuce, un robot, un soft ou autres afin que la premiere execution se fasse automatiquement ?
    Il reste toujours une compilation lors de la 1ère exécution de l'appli web.
    Pas d'autres solutions que d'appeler une page à la main ou via un batch (je crois qu'il y a des trucs de prévus à cet effet avec ASP.NET 4.0)

  10. #10
    Membre éprouvé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Par défaut
    Il me vient une idee : Faire une appli utilisant un HttpWebRequest pour faire appel a chaque page de mon site ? cela ferait executer mes pages ?

  11. #11
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Faut juste appeler une page

  12. #12
    Membre éprouvé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Par défaut
    Ok donc je faire une console window base sur HttpWebRequest et mon sitemap.

    Merci

  13. #13
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Salut,
    Citation Envoyé par lutecefalco Voir le message
    Faut juste appeler une page
    J'ai quand même un doute là dessus. J'ai plutôt l'impression que l'application compile (met en mémoire) le code qu'elle utilise. La fois suivante ça ira plus vite. Mais si par la suite elle doit exécuter une portion de code par laquelle elle n'est jamais passée cela prendra encore du temps. C'est assez net sur la trace d'une application sur laquelle je travaille. Serait-ce une question de mise en mémoire?

    J'aurai tendance à trouver cela normal. Inutile de prendre le temps de traiter tout le code qui se trouve dans une dll de 4Mo, dont on ne sait pas si il servira à quelque chose pendant la session.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 169
    Par défaut
    C'est effectivement au démarrage de l'application que l'on constate une latence: en effet le pool auquel est rattaché l'application dans IIS est démarré (en quelque sorte le processus).

    Attention par défaut (en tous cas sur IIS6) si aucune activité sur l'application, le process s'endort au bout de 20 minutes. A la prochaine connexion il va se réveiller et rebelote Application_Start du Global.asax etc...

    Pour cela il suffit de configurer correctement le pool de l'application dans IIS: par exemple recycler le processus une fois par jour à XX:XX Heure : ainsi la latence ne se produira qu'à la première demande (premier accès) et l'application restera en éveil jusqu'au lendemain.

    En espérant avoir pu t'aider.

  15. #15
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Citation Envoyé par tscoops Voir le message
    Pour cela il suffit de configurer correctement le pool de l'application dans IIS: par exemple recycler le processus une fois par jour à XX:XX Heure : ainsi la latence ne se produira qu'à la première demande (premier accès) et l'application restera en éveil jusqu'au lendemain.
    Le recyclage de pool n'est pas fait pour maintenir une application web en éveil, mais plutôt pour garantir une certaine stabilité. Cela remet les pendules (mémoire surtout) à l'heure. C'est comme rebooter son PC quand il devient trop lent pour répondre.

    J'ai lu quelque part que windows server 2008 a des fonctionnalités d'éveil d'application web.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 169
    Par défaut
    En effet c'est bien pour recycler et remettre les compteurs à 0.

  17. #17
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Citation Envoyé par Immobilis Voir le message
    Salut,J'ai quand même un doute là dessus. J'ai plutôt l'impression que l'application compile (met en mémoire) le code qu'elle utilise. La fois suivante ça ira plus vite. Mais si par la suite elle doit exécuter une portion de code par laquelle elle n'est jamais passée cela prendra encore du temps. C'est assez net sur la trace d'une application sur laquelle je travaille. Serait-ce une question de mise en mémoire?
    A+
    Je sais pas trop. J'ai lu plusieurs versions là-dessus.
    Y en a qui disent que c'est juste le code utilisé qui est compilé et d'autres qui disent que c'est tout le dossier concerné qui est compilé.

    J'ai jamais creusé à fond le sujet

  18. #18
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Par défaut
    J'ai toujours appris comme lutecefalco, à savoir, l'appel d'une seule page suffit et mes tests à l'instant viennent de le prouver. la seule chose qui coute vraiment c'est l'initialisation du process win32 de hosting, puis l'itilitialisation AppDomain pour hoster l'application ASP.Net, pas telle ou telle page.

  19. #19
    Membre éprouvé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Par défaut
    J'ai fait une application console qui a pour but d'executer mes pages les une apres les autres apres deploiement.

    Tous marche tres bien.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Générer l'executable des pages .aspx via Visual Studio
    Par bestcasaoui dans le forum Visual Studio
    Réponses: 2
    Dernier message: 03/01/2011, 18h11
  2. 1ère ouverture très lente des pages .ASPX
    Par davelop dans le forum ASP.NET
    Réponses: 3
    Dernier message: 19/12/2007, 12h56
  3. Générer des pages aspx
    Par wekka dans le forum ASP.NET
    Réponses: 2
    Dernier message: 02/08/2007, 14h30
  4. Réponses: 3
    Dernier message: 16/07/2007, 15h12
  5. Code par défaut des pages ASPX
    Par zooffy dans le forum Visual Studio
    Réponses: 9
    Dernier message: 13/05/2007, 14h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo