V prejšnjem članku obstaja še ena stara težava, ki ni bila rešena, in sicer, ASP.NET MVC MapRoute .htm ne deluje, kako jo rešiti, če ne uporabljate runAllManagedModulesForAllRequests="true"? Kasneje sem našel rešitev:
Referenca: ASP.NET MVC: Usmerite .html zahtevo na prometno pot
Pojasnil sem, zakaj ne bi smeli uporabljati runAllManagedModulesForAllRequests="true", nato pa sem našel dva povezana članka:
Umetnost preprostosti: Optimizirajte zmogljivost svojih spletnih aplikacij: Ne uporabljajte runAllManagedModulesForAllRequests="true". Ne uporabljajte runAllManagedModulesForAllRequests="true", ko spravljate svoje MVC usmerjanje Izsek iz opisa v besedilu:
Ta zelo priporočena rešitev lahko povzroči druge težave. Te težave se kažejo v tem, da morajo vsi registrirani HTTP moduli delovati na vsakem zahtevku, ne le upravljanih zahtev (npr. .aspx). To pomeni, da bodo moduli delovali na vsaki .jpg .gif .css .html .pdf itd. runAllManagedModulesForAllRequests je kot preklopnik kanalov za IIS module in zahteve; če je to stikalo vklopljeno, potem vse zahteve, ki dostopajo do te strani, gredo v module za obdelavo, kar vključuje tudi nekatere statične datotečne zahteve, kar je tudi najpogostejša vrsta "ni potrebe po obdelavi", saj zahteva vstopi v module in mora obstajati ustrezni program, ki jo obdela. To povzroča nepotrebno zmogljivostno obremenitev, saj so statične datoteke namenjene le prikazu, ni potrebe po obdelavi modulov, majhne lokacije niso pomembne, če pa nekatere velike PV lokacije počnejo enako, to povzroči nekaj "pritiska" na obdelavo programov modulov IIS, zaključek, povzet v zgornjem blog zapisu, pa je zapravljanje (izguba... ) in potencial (potencial... )。
Naredimo test z Application_BeginRequest, da vidimo, katere zahteve se beležijo za različne konfiguracije runAllManagedModulesForAllRequests, in preizkusimo vzorčno kodo:
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 zapis:
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_* Slika je tista, ki sem jo dodal v pogled, to je le zahteva za testiranje statične slike; če ste na veliki strani, dodajte kodo za testiranje zahteve in nato osvežite stran, boste ugotovili, da je veliko nepomembnih zahtev. Morda pogledate zgornji testni zapis, ki ne pojasnjuje nobene težave, a si predstavljajte, če je stran z veliko statičnimi datotekami, število obiskov pa je desetine milijonov, in stran vsebuje veliko strani, čeprav je to majhen problem, se bo neskončno povečal, in na koncu ugotovite, da gre le za konfiguracijsko težavo.
To je to, spremenil bom kodo.
|