Nell'articolo precedente, c'è un altro problema legacy che non è stato risolto, cioè ASP.NET MVC MapRoute .htm non funziona, come risolverlo se non si usa runAllManagedModulesForAllRequests="true"? Più tardi, ho trovato una soluzione:
Riferimento: ASP.NET MVC: Instradare una richiesta di .html a una tratta MVC
Ho discusso perché dovresti cercare di non usare runAllManagedModulesForAllRequests="true", e poi ho trovato due articoli correlati:
L'arte della semplicità: Ottimizza le prestazioni delle tue applicazioni web: Non usare runAllManagedModulesForAllRequests="true". Non usare runAllManagedModulesForAllRequests="true" quando fai funzionare il routing MVC Estratto da una descrizione nel testo:
Questa soluzione altamente raccomandata può causare altri problemi. Questi problemi si manifestano nel far eseguire tutti i tuoi moduli HTTP registrati su ogni richiesta, non solo sulle richieste gestite (ad esempio .aspx). Questo significa che i moduli funzioneranno sempre .jpg .gif .css .html .pdf ecc. runAllManagedModulesForAllRequests è come un commutatore di canale per i moduli IIS e le richieste: se questo interruttore viene attivato, tutte le richieste che accedono a questo sito andranno nei Moduli per l'elaborazione, che includono alcune richieste di file statiche, che sono anche il tipo più comune di richieste "non necessario di elaborare", poiché la richiesta entra nei Moduli, quindi deve esserci un programma corrispondente per elaborarla. Questo causa un sovraccarico di prestazioni inutile, perché i file statici sono solo per la visualizzazione, non c'è bisogno di elaborare i Moduli, i piccoli siti non contano, quando alcuni grandi siti fotovoltaici fanno lo stesso, questo genera una certa "pressione" sull'elaborazione del programma dei Moduli di IIS, e la conclusione riassunta in un post sopra sul blog è lo spreco (rifiuti... ) e potenziale (potenziale... )。
Facciamo un test con Application_BeginRequest per vedere quali richieste vengono registrate per le diverse configurazioni di runAllManagedModulesForAllRequests, e testiamo il codice di esempio:
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 record:
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_* L'immagine è quella che ho aggiunto nella visualizzazione, questa è solo una richiesta per testare un'immagine statica; se sei su un sito grande, aggiungi il codice di test e poi aggiorni la pagina, scoprirai che ci sono molte richieste senza significato. Forse guardi il record di test sopra, non sembra spiegare alcun problema, ma immagina se un sito con molti file statici, e il numero di visite è di decine di milioni, e il sito contiene molte pagine, anche se è un piccolo problema, verrà ingrandito all'infinito, e alla fine scopri che si tratta solo di un problema di configurazione.
Ecco, cambierò il codice.
|