Ankstesniame straipsnyje yra dar viena senoji problema, kuri nebuvo išspręsta, tai yra, ASP.NET MVC MapRoute .htm neveikia, kaip ją išspręsti, jei nenaudojate runAllManagedModulesForAllRequests="true"? Vėliau radau sprendimą:
Nuoroda: ASP.NET MVC: .html užklausos nukreipimas į MVC maršrutą
Aptariau, kodėl turėtumėte stengtis nenaudoti runAllManagedModulesForAllRequests="true", ir tada radau du susijusius straipsnius:
Paprastumo menas: optimizuokite žiniatinklio programų našumą: nenaudokite runAllManagedModulesForAllRequests="true". Nenaudokite runAllManagedModulesForAllRequests="true", kai MVC maršruto parinkimas veikia Ištrauka iš aprašymo tekste:
Šis labai rekomenduojamas pataisymas gali sukelti kitų problemų. Šios problemos kyla dėl to, kad visi jūsų registruoti HTTP moduliai veikia pagal kiekvieną užklausą, o ne tik valdomas užklausas (pvz., .aspx). Tai reiškia, kad moduliai veiks visą .jpg .gif .css .html .pdf ir pan. runAllManagedModulesForAllRequests yra tarsi IIS modulių ir užklausų kanalo jungiklis, jei šis jungiklis įjungtas, tada visos užklausos, kurios pasiekia šią svetainę, pateks į modulius apdoroti, įskaitant kai kurias statinių failų užklausas, kurios taip pat yra labiausiai paplitusios "nereikia apdoroti" užklausų rūšis, nes užklausa patenka į modulius, tada turi būti atitinkama programa, kad ją apdorotų. Tai sukelia nereikalingų našumo išlaidų, nes statiniai failai yra tik rodyti, nereikia daryti modulių apdorojimo visiems, mažos svetainės nesvarbu, kai kai kurios didelės PV svetainės daro tą patį, tai sukels tam tikrą "spaudimą" IIS modulių programos apdorojimui, o aukščiau pateiktame tinklaraščio įraše apibendrinta išvada yra atliekos (atliekos... ) ir potencialus (potencialus... )。
Atlikime testą su Application_BeginRequest, kad pamatytume, kokios užklausos registruojamos skirtingoms runAllManagedModulesForAllRequests konfigūracijoms, ir išbandykime kodo pavyzdį:
runAllManagedModulesForAllRequests="fasle", data.txt žurnalą:
http://localhost:55127/
http://localhost:55127/bundles/test2?v=2Fz3B0iizV2NnnamQFrx-NbYJNTFeBJ2GM05SilbtQU1
http://localhost:55127/bundles/test1?v=MDbdFKJHBa_ctS5x4He1bMV0_RjRq8jpcIAvPpKiN6U1 runAllManagedModulesForAllRequests="true", data.txt įrašas:
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_* Vaizdas yra tai, ką pridėjau rodinyje, tai tik prašymas išbandyti statinį vaizdą, jei esate didelėje svetainėje, pridėkite užklausos bandymo kodą ir atnaujinkite puslapį, pamatysite, kad yra daug beprasmių užklausų. Galbūt pažvelgsite į aukščiau pateiktą bandymo įrašą, atrodo, kad jis nepaaiškina jokios problemos, bet tik įsivaizduokite, jei svetainė su daugybe statinių failų, o tada apsilankymų skaičius yra dešimtys milijonų, o svetainėje yra daug puslapių, nors tai yra nedidelė problema, ji bus be galo padidinta, ir galiausiai pamatysite, kad tai tik konfigūracijos problema.
Viskas, aš pakeisiu kodą.
|