Как предотвратить ASP.NET MVC от обработки статических файлов (js и изображений) на Windows Azure?

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

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

UPDATE: Основная причина, по которой я хочу это сделать, - это то, что статические файлы обрабатываются всеми HttpModules, зарегистрированными в приложении, что замедляет производительность.

Ответ 1

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

Ответ 2

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

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

Не совсем то, что я искал, но, похоже, соответствует законопроекту.

UPDATE: если вы удалите "runAllManagedModulesForAllRequests = true" из web.config, убедитесь, что ваш IIS обновлен, иначе URI без продолжения больше не будут работать. KB об этом: http://support.microsoft.com/kb/980368/en-us

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