ASP.NET MVC: HttpApplication обрабатывает каждый запрос к серверу, включая запросы на css, js, img.Это нормально? - PullRequest
2 голосов
/ 19 мая 2011

Существует тяжелое приложение MVC и множество стилей, сценариев, изображений на каждой странице. Но HttpApplication обрабатывает каждый запрос к серверу, включая запросы на .css, js, img. Я предполагаю, что это тратит ресурсы.

Можно ли это отключить?

Ответы [ 3 ]

4 голосов
/ 19 мая 2011

Некоторые другие ответы немного вводят в заблуждение, поэтому я включу.

Параметром, который управляет этим поведением, является атрибут runAllManagedModulesForAllRequests, расположенный в разделе configuration\system.webServer\modules вашего файла Web.config. Каждый шаблон проекта MVC по умолчанию имеет значение true. Вы можете установить его в false, чтобы отключить поведение.

Однако , обратите внимание, что это может заставить ваши маршруты перестать работать. Это связано с тем, что в более ранних версиях IIS этот параметр требовался для работы маршрутизации с URL-адресами без расширений. Без этого параметра IIS обрабатывал такие запросы, как если бы они ссылались на папки и вообще обходил управляемый конвейер. Этот параметр заставляет IIS запускать все управляемые модули для всех запросов (как красноречиво подразумевает название параметра), что дает возможность маршрутизации URL-адреса ответить.

В Windows Server 2008 R2 SP1 (или других ОС, в которых установлена ​​ KB980368 ) этот параметр больше не требуется.

Таким образом, в зависимости от конфигурации ваших серверов, вы можете отключить ее, но вам обязательно нужно сначала протестировать, чтобы убедиться, что ваше приложение продолжит работать.

1 голос
/ 19 мая 2011

Необходимо потратить ресурсы, иначе IIS не сможет отправить эти файлы в браузер.

Запросы к статическим файлам не проходят через динамический конвейер запросов - они обойдены, поэтому не стоит беспокоиться в этом отношении.

0 голосов
/ 19 мая 2011

Если у вас есть законные основания опасаться за использование ресурсов аппаратного обеспечения сервера, используемых для обслуживания файлов ресурсов в вашем приложении, решение этого состоит в том, чтобы удалить эти ресурсы из приложения.

То естьвся цель сети распространения контента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...