У попередній статті є ще одна спадкова проблема, яка не була вирішена, а саме, ASP.NET MVC MapRoute .htm не працює, як її вирішити, якщо ви не використовуєте runAllManagedModulesForAllRequests="true"? Пізніше я знайшов рішення:
Джерело: ASP.NET MVC: Направити запит на .html на маршрут MVC
Я обговорював, чому варто не використовувати runAllManagedModulesForAllRequests="true", а потім знайшов дві пов'язані статті:
Мистецтво простоти: оптимізуйте продуктивність ваших веб-додатків: не використовуйте runAllManagedModulesForAllRequests="true". Не використовуйте runAllManagedModulesForAllRequests="true" при запуску маршрутизації MVC Витяг із опису в тексті:
Це дуже рекомендоване рішення може спричинити інші проблеми. Ці проблеми виникають у тому, що всі ваші зареєстровані HTTP-модулі працюють на кожному запиті, а не лише керовані запити (наприклад, .aspx). Це означає, що модулі працюватимуть на кожному .jpg .gif .css .html .pdf тощо. runAllManagedModulesForAllRequests — це як перемикач каналів для IIS-модулів і запитів, якщо цей перемикач увімкнено, то всі запити, що заходять на цей сайт, потрапляють у Модулі для обробки, що включає деякі статичні файлові запити, що також є найпоширенішим типом запитів «не потрібно обробляти», оскільки запит входить у Модулі, тоді має бути відповідна програма для його обробки. Це спричиняє зайві витрати на продуктивність, бо статичні файли призначені лише для відображення, немає потреби в обробці модулів взагалі, малі майданчики не мають значення, коли великі PV-майданчики роблять те саме, це створює певний «тиск» на обробку програм модулів IIS, і висновок, підсумований у блозі вище, — це марнотратство (відходи... ) та потенціал (потенційний... )。
Проведемо тест з Application_BeginRequest, щоб побачити, які запити реєструються для різних конфігурацій runAllManagedModulesForAllRequests, і протестуємо приклад коду:
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 запис:
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_* Зображення — це те, що я додав у вигляді, це просто запит на тестування статичного зображення, якщо ви на великому сайті, додайте код тесту запиту, а потім оновіть сторінку, ви побачите, що там багато беззмістовних запитів. Можливо, ви подивитеся на тестовий запис вище, він не пояснює жодної проблеми, але уявіть, що якщо сайт з великою кількістю статичних файлів, а кількість відвідувань становить десятки мільйонів, і сайт містить багато сторінок, хоча це невелика проблема, вона буде нескінченно збільшена, і врешті-решт ви виявите, що це просто проблема налаштування.
Ось і все, я зміню код.
|