V predchádzajúcom článku existuje ďalší problém s legacy, ktorý nebol vyriešený, a to, ASP.NET MVC MapRoute .htm nefunguje, ako ho vyriešiť, ak nepoužívate runAllManagedModulesForAllRequests="true"? Neskôr som našiel riešenie:
Referencia: ASP.NET MVC: Nasmerujte .html požiadavku na trasu MVC
Diskutoval som, prečo by ste nemali používať runAllManagedModulesForAllRequests="true", a potom som našiel dva súvisiace články:
Umenie jednoduchosti: Optimalizujte výkon svojich webových aplikácií: Nepoužívajte runAllManagedModulesForAllRequests="true". Nepoužívajte runAllManagedModulesForAllRequests="true" pri rozchode smerovania MVC Úryvok z popisu v texte:
Táto vysoko odporúčaná oprava môže spôsobiť ďalšie problémy. Tieto problémy sa prejavujú v tom, že všetky vaše registrované HTTP moduly bežia na každej požiadavke, nielen na spravované požiadavky (napr. .aspx). To znamená, že moduly budú bežať na Every .jpg .gif .css .html .pdf a podobne. runAllManagedModulesForAllRequests je ako prepínač kanálov pre IIS moduly a požiadavky, ak je tento prepínač zapnutý, všetky požiadavky, ktoré pristupujú na túto stránku, pôjdu do modulov na spracovanie, čo zahŕňa aj niektoré statické požiadavky na súbory, čo je tiež najbežnejší typ požiadaviek typu "nie je potrebné spracovávať", pretože požiadavka vstupuje do modulov, potom musí existovať zodpovedajúci program, ktorý ju spracuje. To spôsobuje zbytočnú výkonnostnú záťaž, pretože statické súbory slúžia len na zobrazenie, nie je potrebné vôbec spracovávať moduly, malé lokality nie sú dôležité, keď niektoré veľké PV stanice robia to isté, spôsobuje to určitý "tlak" na spracovanie modulov v IIS, a záver zhrnutý v blogovom príspevku vyššie je plytvanie (plytvanie... ) a potenciál (potenciál... )。
Urobme test s Application_BeginRequest, aby sme zistili, aké požiadavky sa zaznamenávajú pre rôzne konfigurácie runAllManagedModulesForAllRequests, a otestujme ukážkový kód:
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 záznam:
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_* Obrázok je to, čo som pridal do zobrazenia, je to len požiadavka na testovanie statického obrázka, ak ste na veľkej stránke, pridajte testovací kód požiadavky a potom stránku obnovte, zistíte, že je tam veľa bezvýznamných požiadaviek. Možno sa pozriete na testovací záznam vyššie, nezdá sa, že by vysvetľoval žiadny problém, ale predstavte si, že stránka má veľa statických súborov, počet návštev je desiatky miliónov a stránka obsahuje veľa stránok, hoci je to malý problém, bude nekonečne zväčšený a nakoniec zistíte, že ide len o konfiguračný problém.
To je všetko, zmením kód.
|