2016-08-31 1 views
1

Je travaille sur une application .NET WebForms et j'ai remarqué que chaque fois que je compile, après le build, le chargement de la première page prend plus de temps que d'habitude. Cela arrive même si j'attends après avoir construit avant de charger une page. Existe-t-il un moyen d'augmenter les performances de la main-d'œuvre humaine en modifiant IIS/.NET pour initialiser les éléments sur postbuild au lieu de charger la première page?La construction .NET ralentit considérablement le chargement de la première page

Répondre

2

Oui, vous pouvez, comme this. cite:

Vous pouvez utiliser l'initialisation du module d'application qui vient en boîte avec IIS 8.0, comme ceci:

<applicationInitialization 
    doAppInitAfterRestart="true" > 
    <add initializationPage="/" /> 
</applicationInitialization> 

Cela envoie une demande à la racine de votre application (initializationPage = «/») chaque fois que votre application démarre automatiquement.

Vous pouvez également configurer le mode de démarrage de votre pool d'applications toujours en cours ce qui signifie à chaque fois que IIS redémarre, il fera en sorte de commencer votre pool d'applications immédiatement (ce cas de clic droit sur votre pool d'applications puis avancée Paramètres).

+0

Cette applicationInitialization doit-elle être ajoutée dans le noeud appSettings? –

+0

Non, à l'intérieur de parce que c'est une fonction IIS. Vérifiez ceci: https://www.iis.net/configreference/system.webserver/applicationinitialization –

+0

En outre, vous devez installer la fonction "Initialisation de l'application" sous les fonctionnalités de Windows si elle n'est pas présente. –

0

Les serveurs professionnels n'ont quasiment pas de latence, même si cela demande un peu de peaufinage. En outre, par défaut, les applications sont régulièrement recyclées sur IIS (ainsi que lorsque certaines exceptions surviennent, lorsque certains fichiers sont modifiés ou lorsque certains seuils sont atteints). L'hébergement d'applications Web professionnelles est loin d'être simple :) Vous pourriez peut-être obtenir de l'aide pour cela sur Server Fault. Une autre option est d'éviter de mélanger la pré-compilation et la compilation JIT. Si vous ne faites que précompiler, vous n'avez pas besoin de faire de compilation lors du déploiement de l'application, ce qui accélère les temps de démarrage. Si vous ne déployez que des sources, le domaine d'application n'a pas besoin d'être démoli lorsque vous apportez une modification, ce qui signifie que seul le changement doit être recompilé, ce qui est beaucoup plus rapide. Bien sûr, ASP.NET Core est bien plus rapide dans les deux scénarios - il peut faire toute la compilation en mémoire, contrairement au système existant qui utilise csc pour construire plusieurs assemblages, les enregistrer sur le disque, load à partir du disque, les fusionner ensemble, enregistrer à nouveau , juste pour le charger à nouveau et initialiser.