Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 14502|Yanıt: 0

[ASP.NET] Styles.Render, runAllManagedModulesForAllRequests=true düşüncesini tetikliyor:

[Bağlantıyı kopyala]
Yayınlandı 13.10.2016 15:02:09 | | |
Ö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.





Önceki:C# sözlük anahtarı sıralamak için
Önümüzdeki:asp.net MVC rotalarında statik kaynaklara erişim
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com