Önceki makalede, çözülmemiş başka bir eski sorun vardı, yani ASP.NET MVC MapRoute .htm çalışmazsa, runAllManagedModulesForAllRequests="true" kullanmazsanız nasıl çözülür? Daha sonra bir çözüm buldum:
Referans: ASP.NET MVC: Bir .html isteği bir MVC rottasına yönlendirin
runAllManagedModulesForAllRequests="true" kullanmamaya neden çalışmamanız gerektiğini tartıştım ve ardından iki ilgili makale buldum:
Basitlik sanatı: Web uygulamalarınızın performansını optimize edin: runAllManagedModulesForAllRequests="true" kullanmayın. MVC yönlendirmenizi çalıştırırken runAllManagedModulesForAllRequests="true" kullanmayın Metindeki bir açıklamadan alıntı:
Bu çok tavsiye edilen çözüm başka sorunlara da yol açabilir. Bu sorunlar, kayıtlı HTTP modüllerinizin sadece yönetilen isteklerde değil, her istek üzerinde çalışmasını sağlama şeklindedir (örneğin .aspx). Bu, modüllerin her .jpg .gif .css .html .pdf çalışacağı anlamına gelir. runAllManagedModulesForAllRequests, IIS Modülleri ve istekler için bir kanal anahtarı gibidir; eğer bu anahtar açıksa, bu siteye erişen tüm istekler İşleme için Modüller bölümüne girer; bu da bazı statik dosya isteklerini içerir, bu da en yaygın "işlemeye gerek yok" isteği türüdür, çünkü istek Modüllere girer, o zaman onu işlemek için uygun bir program olmalıdır. Bu gereksiz performans yüküne yol açar, çünkü statik dosyalar sadece görüntüleme içindir, Modül işleme yapmaya hiç gerek yoktur, küçük siteler önemli değildir, bazı büyük PV siteleri aynı şeyi yaparsa, IIS'in Modül program işleme üzerinde bir "baskı" oluşturur ve yukarıdaki blog yazısında özetlenen sonuç israf (atık... ) ve potansiyel (potansiyel... )。
RunAllManagedModulesForAllRequests'in farklı yapılandırmaları için hangi isteklerin kaydedildiğini görmek için Application_BeginRequest ile bir test yapalım ve örnek kodu test edelim:
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 kayıt:
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_* Görüntü, görünüme eklediğim şey, bu sadece statik bir görüntüyü test etmek için bir istek, büyük bir sitedeyseniz istek test kodunu ekleyin ve sayfayı yenileyin, çok sayıda anlamsız istek olduğunu göreceksiniz. Yukarıdaki test kaydına bakarsınız, herhangi bir sorunu açıklamıyor gibi görünüyor, ama hayal edin, bir sitede çok sayıda statik dosya varsa, ziyaret sayısı on milyonlarca olursa ve site çok sayıda sayfa içerse, küçük bir sorun olsa da sonsuz büyütülür ve sonunda bunun sadece bir yapılandırma problemi olduğunu görürsünüz.
Tamam, kodu değiştireceğim.
|