Как запретить ASP.NET и Kentico обрабатывать статические файлы

У меня есть веб-сайт Kentico CMS, который обрабатывает статические ресурсы, такие как файлы png. Я бы хотел, чтобы эти файлы не обрабатывались ASP.NET. Как мне это сделать?

Я использую IIS 7.5 и ASP.NET 3.5 с Kentico CMS (веб-формы). Пул приложений - интегрированный режим

Я посмотрел на элемент <location> в файле веб-конфигурации, но мне показалось, что его реализация не имеет значения.

Обновление: изображения содержатся в папке с именем / res, дочерней по отношению к папке webroot. т.е. не управляется kentico, медиа-библиотекой и т. д. Добавлен через Visual Studio.

edit: Основная проблема заключается в том, что на моей домашней странице есть множество изображений, которые иногда загружаются долго. в некоторых случаях загрузка статических изображений может занять целую минуту (что вызывает нашу тревогу). Я не на 100% уверен, что вызывает эту проблему, и это шаг в устранении неполадок.


person Rob Gray    schedule 01.11.2011    source источник
comment
Загружаются ли изображения через Kentico (добавляются как контент через CMSDesk или импортируются в библиотеку мультимедиа) или только в каталог, в котором работает Kentico?   -  person Doozer Blake    schedule 01.11.2011


Ответы (2)


Интегрированный режим означает, что все запросы будут участвовать в конвейере ASP.NET. Я считаю, что конечным обработчиком статических ресурсов будет обработчик статических файлов из IIS, но перед обслуживанием этих файлов вы увидите, что модули ASP.NET и события приложений запускаются для них (включая аутентификацию).

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

person VinayC    schedule 01.11.2011
comment
Спасибо. Я знал, что все запросы проходят через asp.net в интегрированном режиме. Я просто не знаю об этом достаточно, чтобы знать, как остановить обработку этих файлов. Я кое-что читал об использовании элемента ‹location path = res› в web.config, но не знаю, как проверить, что это работает. Я отредактировал вопрос, связанный с основной проблемой. Спасибо:) - person Rob Gray; 01.11.2011
comment
@rob_g, возможно, ваш запрос стоит в очереди. Используйте такой инструмент, как fiddler, чтобы проверить это. Решает ли обслуживание этих файлов в классическом режиме вашу проблему? Если да, вы можете попробовать очистить все модули для указанного пути (или вы можете поместить отдельный файл конфигурации в подпапку). Модуль состояния сеанса может ставить запросы в очередь, но он не должен вступать в действие для статических ресурсов - очистка всех модулей должна исключить такие возможности. - person VinayC; 01.11.2011
comment
спасибо VinayC. Я только что использовал pingdom для анализа страницы и, конечно же, мне рекомендуется распараллеливать запросы изображений. То, что я рано подумал. Я собираюсь пока пойти в этом направлении. Спасибо - person Rob Gray; 01.11.2011
comment
Спасибо @VinayC, у меня была аналогичная проблема с Sitecore и подпапкой статических файлов, и ваше решение по преобразованию подпапки в приложение и запуск классического режима сработало для меня! - person Jay S; 24.12.2014

Если файлы помещаются непосредственно в файловую систему (и не используются в библиотеке мультимедиа в Kentico CMS), Kentico CMS не обрабатывает эти файлы. В любом случае, если вы хотите повысить производительность, возможно, вам следует рассмотреть возможность добавления их через интерфейс CMS - чтобы они обрабатывались механизмом CMS, и вы могли использовать параметры кеширования, доступные в Kentico CMS, для повышения производительности. Загрузка файлов всегда, каждый раз с диска не всегда может быть самым быстрым способом их получения.

person Jurajo    schedule 01.11.2011