În articolul anterior, există o altă problemă moștenită care nu a fost rezolvată, și anume, ASP.NET MVC MapRoute .htm nu funcționează, cum să o rezolvi dacă nu folosești runAllManagedModulesForAllRequests="true"? Mai târziu, am găsit o soluție:
Referință: ASP.NET MVC: Rutează o cerere de .html către o rută MVC
Am discutat de ce ar trebui să încerci să nu folosești runAllManagedModulesForAllRequests="true", apoi am găsit două articole conexe:
Arta simplității: Optimizează performanța aplicațiilor tale web: Nu folosi runAllManagedModulesForAllRequests="true". Nu folosi runAllManagedModulesForAllRequests="true" când faci rutarea MVC să funcționeze Fragment dintr-o descriere din text:
Această soluție foarte recomandată poate cauza alte probleme. Aceste probleme apar sub forma faptului că toate modulele HTTP înregistrate rulează la fiecare cerere, nu doar la cererile gestionate (de exemplu, .aspx). Asta înseamnă că modulele vor rula pe fiecare .jpg .gif .css .html .pdf etc. runAllManagedModulesForAllRequests este ca un comutator de canal pentru modulele și cererile IIS; dacă acest comutator este activat, toate cererile care accesează acest site vor merge în Module pentru procesare, ceea ce include unele cereri statice de fișiere, care sunt și cele mai comune tipuri de cereri "nu trebuie procesate", deoarece cererea intră în Module, atunci trebuie să existe un program corespunzător care să o proceseze. Acest lucru cauzează o suprasolicitare inutilă de performanță, deoarece fișierele statice sunt doar pentru afișare, nu este nevoie să se proceseze modulele deloc, site-urile mici nu contează, când unele site-uri PV mari fac la fel, se va crea o "presiune" asupra procesării programelor Modules din IIS, iar concluzia rezumată într-un articol de blog de mai sus este risipa (deșeuri... ) și potențial (potențial... )。
Hai să facem un test cu Application_BeginRequest pentru a vedea ce cereri sunt înregistrate pentru diferite configurații ale runAllManagedModulesForAllRequests și să testăm codul exemplu:
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 înregistrare:
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_* Imaginea este ceea ce am adăugat în vizualizare, aceasta este doar o cerere de a testa o imagine statică, dacă ești pe un site mare, adaugi codul de test al cererii și apoi reîmprospătezi pagina, vei vedea că sunt multe cereri fără sens. Poate te uiți la înregistrarea de test de mai sus, nu pare să explice nicio problemă, dar imaginează-ți că un site are multe fișiere statice, iar numărul de vizite este de zeci de milioane, iar site-ul conține multe pagini, deși este o problemă mică, va fi mărită infinit, iar în final descoperi că este doar o problemă de configurare.
Gata, o să schimb codul.
|