Как остановить IIS от кеширования любых файлов, когда-либо, ни при каких обстоятельствах?
Я делаю некоторые веб-разработки для работы, и самый большой удар по моей производительности происходит от IIS. Он кэширует файлы, которые не будут обновляться, даже если они будут изменены, если я не перезапущу IIS. В частности, я имею в виду файлы html, js и css. Эта проблема заставляет меня постоянно останавливать и запускать мое веб-приложение. Поскольку у меня Windows 7, я считаю, что у меня ISS 7.5. Я использую IIS Express. Это так расстраивает, что я бы предпочел, чтобы IIS никогда ничего не кешировал. Я в порядке с решением, которое останавливает все формы кеширования или только для проекта, над которым я работаю.
Диспетчер IIS недоступен для меня. Он не находится в системе и безопасности → Администрирование → Диспетчер IIS, например, предлагается https://technet.microsoft.com/en-us/library/cc770472%28v=ws.10%29.aspx. Кроме того, поиск inetmgr в поле "Начать поиск" не дает мне никаких результатов. Из-за этого я ищу исправление для файла applicationhost.config IIS.
Я попытался поместить следующее в мой applicationhost.config, который не работает:
<location path="ProjectName">
<system.webServer>
<staticContent>
<clientCache cacheControlCustom="public" cacheControlMode="DisableCache" />
</staticContent>
<caching enabled="false" enableKernelCache="false"></caching>
</system.webServer>
</location>
Ближайший вопрос о StackOverflow к моей проблеме был кешированные файлы IIS никогда не заменялись. Тем не менее, Fiddler показывает мне, что старые файлы отправляются в браузер даже после того, как они были изменены.
Как IIS может отправить мой браузер обновленным файлам без перезапуска?
Ответы
Ответ 1
Я подозреваю, что вы включили кэширование вывода, это будет демонстрировать поведение, которое вы описываете, где переработка пула приложений или перезапуск IIS очищает их и позволяет вам видеть новый контент.
На этой странице содержится дополнительная информация http://www.iis.net/learn/manage/managing-performance-settings/walkthrough-iis-output-caching
Если вы используете IIS Express, скорее всего, кеширование будет установлено на уровне приложения в вашем web.config или на отдельных страницах.
Вам нужно установить
<caching>
<outputCache enableOutputCache="false" />
</caching>
или если его IIS 7+ (какой будет IIS Express)
<system.webServer>
<caching enabled="false" />
</system.webServer>
Ответ 2
Если кто-то наткнется на это и хочет "щелчок мышью", способ отключить кеш в IIS 7 или около того... вот ответ с форумов IIS на https://forums.iis.net/t/959070.aspx:
Здесь обновление для IIS 7.5 (в Windows 7). Отключение кеша - это хорошо, что нужно делать во время разработки, когда вас не интересуют производительности и хотите, чтобы изменения происходили немедленно. Скорость процесс разработки. - Запустить диспетчер IIS (введите IIS в поисковые программы и файлы в меню "Пуск" ) - Перейдите к нужному сайту в дереве подключений (веб-сайт по умолчанию) - Открыть кэширование выходных данных - Изменить настройки параметров - Снимите флажок Включить кеш и Включить кеш ядра
Вы получаете настройки в файле web.config примерно так:
<caching enabled="false" enableKernelCache="false">
<profiles>
<add extension=".css" policy="DontCache" kernelCachePolicy="DontCache" />
<add extension=".script" policy="DontCache" kernelCachePolicy="DontCache" />
</profiles>
</caching>
Итак, здесь нет тега.
Ответ 3
Довольно возможно это браузер, который является виновником.
Вы пробовали ctrl + F5?