Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 14502|Odpowiedź: 0

[ASP.NET] Styles.Render wywołuje myśl runAllManagedModulesForAllRequests=true

[Skopiuj link]
Opublikowano 13.10.2016 15:02:09 | | |
W poprzednim artykule pojawił się kolejny problem legacy, który nie został rozwiązany, a mianowicie: ASP.NET MVC MapRoute .htm nie działa, jak go rozwiązać, jeśli nie używasz runAllManagedModulesForAllRequests="true"? Później znalazłem rozwiązanie:



Źródło: ASP.NET MVC: Przekieruj zapytanie .html na trasę MVC

Omówiłem, dlaczego nie powinieneś używać runAllManagedModulesForAllRequests="true", a potem znalazłem dwa powiązane artykuły:

Sztuka prostoty: Optymalizuj wydajność swoich aplikacji webowych: Nie używaj runAllManagedModulesForAllRequests="true".
Nie używaj runAllManagedModulesForAllRequests="true" podczas uruchamiania routingu MVC
Fragment opisu w tekście:

Ta wysoce zalecana poprawka może powodować inne problemy. Problemy te pojawiają się w postaci uruchamiania wszystkich zarejestrowanych modułów HTTP na każde żądanie, a nie tylko na zarządzanych (np. .aspx). Oznacza to, że moduły będą działać na każdej .jpg .gif .css .html .pdf itd.

runAllManagedModulesForAllRequests jest jak przełącznik kanałów dla modułów IIS i żądań, jeśli ten przełącznik jest włączony, to wszystkie żądania dostające się do tej strony trafiają do modułów w celu przetwarzania, co obejmuje niektóre statyczne żądania plików, które są również najczęstszym rodzajem żądań "nie trzeba przetwarzać", ponieważ żądanie trafia do modułów, a następnie musi istnieć odpowiedni program do jego przetwarzania. To powoduje niepotrzebne obciążenie wydajnościowe, bo pliki statyczne służą tylko do wyświetlania, nie ma potrzeby w ogóle przetwarzać modułów, małe strony nie mają znaczenia, a gdy duże stacje PV robią to samo, powoduje to "presję" na przetwarzanie programów modułów w IIS, a wniosek podsumowany w powyższym wpisie na blogu to marnotrawstwo (marnotrawstwo... ) oraz potencjał (potencjał... )。

Zróbmy test z Application_BeginRequest, aby zobaczyć, jakie żądania są rejestrowane dla różnych konfiguracji runAllManagedModulesForAllRequests, i przetestujmy przykładowy kod:


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 rekord:

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_* Obraz to to, co dodałem w widoku, to po prostu żądanie przetestowania statycznego obrazu. Jeśli jesteś na dużej stronie, dodaj kod testowy żądania, a potem odśwież stronę, znajdziesz tam mnóstwo bezsensownych żądań. Może spojrzysz na powyższy rekord testu – nie wydaje się on wyjaśniać żadnego problemu, ale wyobraź sobie, że strona jest pełna plików statycznych, a liczba odwiedzin to dziesiątki milionów i strona zawiera wiele stron, choć to mały problem, będzie nieskończenie powiększony, a w końcu okaże się, że to po prostu problem konfiguracyjny.

To wszystko, zmienię kod.





Poprzedni:Klucz słownikowy C# do sortowania
Następny:asp.net Dostęp do zasobów statycznych w trasach MVC
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com