I den föregående artikeln finns det ett annat äldre problem som inte har lösts, nämligen att ASP.NET MVC MapRoute .htm inte fungerar, hur löser man det om man inte använder runAllManagedModulesForAllRequests="true"? Senare hittade jag en lösning:
Referens: ASP.NET MVC: Skicka en .html begäran till en MVC-rutt
Jag diskuterade varför du bör försöka att inte använda runAllManagedModulesForAllRequests="true", och sedan hittade jag två relaterade artiklar:
Konsten att förenkla: Optimera prestandan hos dina webbapplikationer: Använd inte runAllManagedModulesForAllRequests="true". Använd inte runAllManagedModulesForAllRequests="true" när du får din MVC-routing att fungera Utdrag ur en beskrivning i texten:
Denna starkt rekommenderade lösning kan orsaka andra problem. Dessa problem uppstår i form av att alla dina registrerade HTTP-moduler körs på varje förfrågan, inte bara hanterade förfrågningar (t.ex. .aspx). Det betyder att moduler kommer att köras på alla .jpg .gif .css .html .pdf osv. runAllManagedModulesForAllRequests är som en kanalswitch för IIS-moduler och förfrågningar, om denna switch slås på går alla förfrågningar som kommer till denna plats att gå in i Modules för bearbetning, vilket inkluderar vissa statiska filförfrågningar, vilket också är den vanligaste typen av "ingen behov av att behandla"-förfrågningar, eftersom förfrågan går in i Moduler, då måste det finnas ett motsvarande program för att bearbeta den. Detta orsakar onödig prestandaöverhead, eftersom statiska filer bara är till för visning, det finns inget behov av modulbearbetning alls, små platser spelar ingen roll, när vissa stora PV-platser gör samma sak kommer det att orsaka viss "press" på IIS:s modulers programhantering, och slutsatsen som sammanfattas i ett blogginlägg ovan är slöseri (slöseri... ) och potential (potential... )。
Låt oss göra ett test med Application_BeginRequest för att se vilka förfrågningar som loggas för olika konfigurationer av runAllManagedModulesForAllRequests, och testa exempelkoden:
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 post:
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_* Bilden är vad jag lade till i vyn, detta är bara en förfrågan om att testa en statisk bild, om du är på en stor sida, lägg till förfrågan-testkoden och uppdatera sidan, du kommer att upptäcka att det finns många meningslösa förfrågningar. Kanske tittar du på testposten ovan, den verkar inte förklara något problem, men föreställ dig bara att om en webbplats har många statiska filer, och antalet besök är tiotals miljoner, och sidan innehåller många sidor, även om det är ett litet problem så kommer det att förstärkas oändligt, och till slut upptäcker du att det bara är ett konfigurationsproblem.
Det är allt, jag ska ändra koden.
|