V předchozím článku existuje další problém s legacy, který nebyl vyřešen, a totiž, ASP.NET MVC MapRoute .htm nefunguje, jak jej vyřešit, pokud nepoužíváte runAllManagedModulesForAllRequests="true"? Později jsem našel řešení:
Reference: ASP.NET MVC: Směrovat .html požadavek na trasu MVC
Diskutoval jsem, proč byste se neměli snažit používat runAllManagedModulesForAllRequests="true", a pak jsem našel dva související články:
Umění jednoduchosti: Optimalizujte výkon svých webových aplikací: Nepoužívejte runAllManagedModulesForAllRequests="true". Nepoužívejte runAllManagedModulesForAllRequests="true" při rozchodu směrování MVC Úryvek z popisu v textu:
Tato vysoce doporučená oprava může způsobit další problémy. Tyto problémy se projevují tím, že všechny registrované HTTP moduly běží na každém požadavku, nejen na spravované požadavky (např. .aspx). To znamená, že moduly budou běžet na každém .jpg .gif .css .html .pdf atd. runAllManagedModulesForAllRequests je jako přepínač kanálů pro moduly IIS a požadavky, pokud je tento přepínač zapnutý, pak všechny požadavky, které přistupují na tuto stránku, půjdou do modulů ke zpracování, což zahrnuje některé statické požadavky na soubory, což je také nejběžnější typ "není třeba zpracovávat" požadavků, protože požadavek vstupuje do modulů, pak musí existovat odpovídající program, který jej zpracuje. To způsobuje zbytečný výkonový přetížek, protože statické soubory slouží jen k zobrazení, není potřeba vůbec zpracovávat moduly, malé stránky nejsou důležité, když to dělají i velké PV stanice, způsobí to určitý "tlak" na zpracování programů modulů v IIS, a závěr shrnutý v blogovém příspěvku výše je plýtvání (plýtváním... ) a potenciál (potenciál... )。
Provedeme test s Application_BeginRequest, abychom zjistili, jaké požadavky jsou zaznamenány pro různé konfigurace runAllManagedModulesForAllRequests, a otestujme ukázkový 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ázek jsem přidal do zobrazení, je to jen požadavek na otestování statického obrázku, pokud jste na velkém webu, přidejte testovací kód požadavku a pak stránku obnovte, zjistíte, že je tam spousta bezvýznamných požadavků. Možná se podíváte na výše uvedený testovací záznam, nezdá se, že by to vysvětlovalo nějaký problém, ale představte si, že web má spoustu statických souborů, počet návštěv je desítky milionů a stránka obsahuje mnoho stránek, i když je to malý problém, bude nekonečně zvětšen, a nakonec zjistíte, že jde jen o konfigurační problém.
To je vše, změním kód.
|