Dans l’article précédent, il y a un autre problème hérité qui n’a pas été résolu, à savoir ASP.NET MVC MapRoute .htm ne fonctionne pas, comment le résoudre si vous n’utilisez pas runAllManagedModulesForAllRequests="true » ? Plus tard, j’ai trouvé une solution :
Référence : ASP.NET MVC : Acheminer une demande de .html vers une route MVC
J’ai expliqué pourquoi il faut essayer de ne pas utiliser runAllManagedModulesForAllRequests="true », puis j’ai trouvé deux articles liés :
L’art de la simplicité : Optimisez les performances de vos applications web : N’utilisez pas runAllManagedModulesForAllRequests="true ». N’utilisez pas runAllManagedModulesForAllRequests="true » pour faire fonctionner votre routage MVC Extrait d’une description dans le texte :
Cette solution fortement recommandée peut causer d’autres problèmes. Ces problèmes se manifestent par le fait que tous vos modules HTTP enregistrés fonctionnent sur chaque requête, pas seulement sur des requêtes gérées (par exemple .aspx). Cela signifie que les modules fonctionneront sur chaque .jpg .gif .css .html .pdf etc. runAllManagedModulesForAllRequests est comme un commutateur de canal pour les modules IIS et les requêtes ; si ce commutateur est activé, alors toutes les requêtes qui accèdent à ce site seront envoyées dans des Modules pour traitement, ce qui inclut certaines requêtes de fichiers statiques, qui sont aussi le type de requêtes « pas besoin de traiter » le plus courant, car la requête entre dans les Modules, il doit alors y avoir un programme correspondant pour la traiter. Cela engendre une surcharge de performance inutile, car les fichiers statiques ne servent qu’à l’affichage, il n’est pas nécessaire de traiter les modules du tout, les petits sites n’ont pas d’importance, quand certains grands sites photovoltaïques font de même, cela exerce une certaine « pression » sur le traitement des programmes des modules IIS, et la conclusion résumée dans un article de blog ci-dessus est le gaspillage (déchet... ) et potentiel (potentiel... )。
Faisons un test avec Application_BeginRequest pour voir quelles requêtes sont enregistrées pour différentes configurations de runAllManagedModulesForAllRequests, et testons le code d’exemple :
runAllManagedModulesForAllRequests="fasle », data.txt log :
http://localhost:55127/
http://localhost:55127/bundles/test2?v=2Fz3B0iizV2NnnamQFrx-NbYJNTFeBJ2GM05SilbtQU1
http://localhost:55127/bundles/test1?v=MDbdFKJHBa_ctS5x4He1bMV0_RjRq8jpcIAvPpKiN6U1 runAllManagedModulesForAllRequests="true », data.txt enregistrement :
http://localhost:55127/
http://localhost:55127/bundles/test2?v=2Fz3B0iizV2NnnamQFrx-NbYJNTFeBJ2GM05SilbtQU1
http://localhost:55127/bundles/test1?v=MDbdFKJHBa_ctS5x4He1bMV0_RjRq8jpcIAvPpKiN6U1
http://localhost:55127/Content/logo_small_1.gif
http://localhost:55127/Content/logo_small_4.gif
http://localhost:55127/Content/logo_small_2.gif
http://localhost:55127/Content/logo_small_3.gif logo_small_* L’image est ce que j’ai ajouté dans la vue, c’est juste une demande pour tester une image statique, si vous êtes sur un grand site, ajoutez le code de test de la demande, puis rafraîchez la page, vous constaterez qu’il y a beaucoup de requêtes sans signification. Peut-être que vous regardez l’enregistrement de test ci-dessus, il ne semble expliquer aucun problème, mais imaginez simplement un site avec beaucoup de fichiers statiques, et que le nombre de visites est de dizaines de millions, et que le site contient de nombreuses pages, même si c’est un petit problème, il sera agrandi à l’infini, et que finalement vous découvrez que ce n’est qu’un problème de configuration.
Voilà, je vais changer le code.
|