Как запретить ASP.NET MVC обрабатывать статические файлы (файлы js и изображения) в Windows Azure? - PullRequest
11 голосов
/ 06 сентября 2011

У меня есть приложение ASP.NET MVC, которое размещено в Windows Azure, и все статические файлы, обслуживаемые веб-сайтом, обрабатываются ASP.NET. Есть ли способ заставить IIS обслуживать статические файлы напрямую, а не направлять эти запросы через ASP.NET? Я хочу помочь повысить производительность при возврате этих статических файлов с сервера.

Я не уверен, что это именно то, что делает сам ASP.NET MVC, или это из-за того, что я размещаю его на Azure.

ОБНОВЛЕНИЕ: Основная причина, по которой я собираюсь это сделать, заключается в том, что статические файлы обрабатываются всеми модулями HttpModules, зарегистрированными в приложении, что несколько снижает производительность.

Ответы [ 2 ]

7 голосов
/ 06 сентября 2011

Я удалил определение " runAllManagedModulesForAllRequests = 'true' " в файле web.config и добавил " preCondition = 'managedHandler " в регистрации HttpModule, которые я не хочу выполнить для статического содержимого.

Я также реализовал ответ Дарина.

Не совсем то, что я искал, но, кажется, это отвечает всем требованиям.

ОБНОВЛЕНИЕ: если вы удалите «runAllManagedModulesForAllRequests = true» из web.config, убедитесь, что ваш IIS обновлен, иначе URI без расширений больше не будут работать. КБ об этом: http://support.microsoft.com/kb/980368/en-us

(Конечно, даже если вы сохраните эту опцию, вам следует беспокоиться о том, чтобы ваш сервер обновлялся.)

6 голосов
/ 06 сентября 2011

При использовании в интегрированном режиме IIS 7 все запросы проходят через управляемый конвейер. Он достаточно оптимизирован, и вам не о чем беспокоиться. С другой стороны, если вы заметили, что эти статические файлы перехвачены механизмом маршрутизации ASP.NET вашего приложения, вы можете попробовать добавить их как IgnoreRoute определения в ваш Global.asax.

...