Как остановить 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?